gpt4 book ai didi

java - 面对此代码的输出问题

转载 作者:行者123 更新时间:2023-11-29 04:08:00 26 4
gpt4 key购买 nike

我的 friend 给了我这段代码,我似乎找不到其中的错误。我附上下面的代码:

    import java.util.*;
public class prg {
public static void main(String[] args) {
int n;
int count;
int a=0,b=1;
int c=0;
Scanner kb=new Scanner(System.in);
n=kb.nextInt();
int ar[]=new int[100];
ar[1] = 2;
for(int i=3;i<=n;i+=2)
{
count=0;
for (int j = 2; j < i ;j++ ) {
if (i % j == 0) {
count++;
break;
}
}
if(count==0)
ar[i]=i;
}

for(int i=0;i<=n;i+=2)
{
a = b;
b = c;
c = a + b;
ar[i]=c;
}
for(int i=0;i<14;i++)
System.out.print(ar[i]+" ");

}
}

因此,偶数索引存储斐波那契数列,奇数索引存储素数。

问题:其余代码工作正常,但“ar”数组的第 9 个索引打印 0 我不知道为什么,因此输出显示错误。

输入n为14,请检查代码。

提前谢谢你。

PS:我已经用另一种方式解决了这个问题,所以我请你不要给出“试试我的方法,效率不高”之类的答案。我只想知道数组的 INDEX 9 出了什么问题。

已编辑:质数循环面临问题。

最佳答案

i 为 9 时,您的代码正确识别它不是素数,因此 count 不为 0。这导致此行无法运行:

ar[i]=i;

然后将 i 加 2 以检查下一个奇数。这意味着您永远不会将数组的索引 9 设置为任何值,因此它保持其默认值 - 0。

要解决此问题,您应该引入一个新变量 possiblePrime 来跟踪您正在检查的数字。外层 for 循环的每次迭代都会增加此变量,并且仅当 possiblePRIme 为质数时才增加 i。另外,将上面的行更改为:

ar[i] = possiblePrime;

关于java - 面对此代码的输出问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57092068/

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