gpt4 book ai didi

Java程序打印数字3和5的指数级数并将结果限制在1000以下

转载 作者:行者123 更新时间:2023-12-01 09:46:14 25 4
gpt4 key购买 nike

我是 Java 编程新手,并且在 Project Euler 上尝试了一些问题。我不知何故想出了自己的问题,打印3和5的指数序列并将结果限制在1000以下。我研究了3天来找到解决这个问题的最佳方法,但我找不到相关文章。我遇到过指数级数算法,但这些算法对于我现在的能力来说太先进了。

如果您能帮助解决这个问题,我将不胜感激。请查看我尝试过的代码

public class Exponent {        

public static void main (String[] args) {

// Declared integers for base and exponent

int i = 0; /* for base */
int n = 0; /* for exponent */

for (n=1; n<5; n++) {

for (i=1; i<=5; i++) {

if (i%3 == 0 || i%5 == 0) {

System.out.println(Math.pow(i,n));

}

}

}

}

}

此代码打印出以下结果:

3.0
5.0
9.0
25.0
27.0
125.0
81.0
625.0

我的问题是,很明显,我通过限制循环内的基数和指数值来强制指数打印低于 1000

for (n=1; n<5; n++) //because n<=5 would print result for 5 power 5 which is 3125

我想以某种方式将结果限制在 1000 以下,所以不确定这个声明是否合适

int result = 1000; // result variable as 1000

此外,我希望代码以 3 和 5 的交替方式打印输出,如下所示。我的程序分别按 3 和 5 的顺序打印输出。

Desired output:

3.0
5.0
9.0
27.0
125.0
81.0
625.0
243.0
729.0

并在那里停止,因为下一个值将超过 1000。

我还想知道是否有其他方法可以代替 Math.pow() 方法,因为它返回 double 而不是 int。我想避免使用 double 值,只需打印如下:

Without double:

3
5
9
27
81
125
243
625
729

最佳答案

不使用Math.pow()(并以不同的顺序打印):

  int[] bases = { 3, 5 };
long maxval = 1000L;
for (int base : bases) {
long value = base;
do {
System.out.println( value );
value *= base;
} while (value < maxval);
}

关于Java程序打印数字3和5的指数级数并将结果限制在1000以下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37996749/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com