大家好我的程序有问题我做了一个用户输入斐波纳契数字的程序,答案是"是"如果它的斐波纳契数字和"否"如果不。到目前为止,这是我的代码。
样品: 输入 1 3 五 7
输出 是 是 是 否
import java.io.*;
import java.util.*;
public class Storage
{
public static void main(String args [])throws IOException
{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
int a,b,c;
b =0;
c =1;
boolean vince = false;
int []stor = new int[10];
for(int v=0; v<stor.length; v++)
{
a = b;
b = c;
c = a+b;
stor[v] = c;
}
System.out.println("Input");
String [] stor2 = new String[10];
for(int v=0; v<stor.length; v++)
{
int x = Integer.parseInt(in.readLine());
for(int k=0; k<stor2.length; k++)
{
if(stor[k] == x)
{
vince = true;
if(vince)
{
stor2[k] = "Yes";
}
else
{
stor2[k] = "No";
}
}
}
}
for(int p=0; p<stor2.length; p++)
{
System.out.print(stor2[p]);
}
}
}
答案 0 :(得分:0)
您应该将stor2
的所有元素初始化为"No"
,这样每个未明确分配"Yes"
的元素都会打印为"No"
;如目前所写,那些未在循环中明确指定的元素将是Null
,并按原样打印。
答案 1 :(得分:0)
嘿,看看问题是什么......
您的代码:
vince = true;
if(vince==true)
{
System.out.println("Entered yes");
stor2[k] = "Yes";
}
else if(vince==false)
{
System.out.println("Entered no");
stor2[k] = "No";
}
您的代码永远不会进入第二个,因为 vince 永远不会 false
一个解决方案是:
boolean vince = false;
System.out.println("Input");
String [] stor2 = new String[10];
for(int p=0; p<stor2.length; p++) //Here make all "No" before begin
stor2[p]="No";
for(int v=0; v<stor.length; v++)
{.....}
运行这个....
import java.io.*;
import java.util.*;
public class Storage
{
public static void main(String args [])throws IOException
{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
int a,b,c;
b =0;
c =1;
boolean vince = false;
int []stor = new int[10];
for(int v=0; v<stor.length; v++)
{
a = b;
b = c;
c = a+b;
stor[v] = c;
}
System.out.println("Input");
String [] stor2 = new String[10];
for(int p=0; p<stor2.length; p++)
stor2[p]="No";
for(int v=0; v<stor.length; v++)
{
int x = Integer.parseInt(in.readLine());
for(int k=0; k<stor2.length; k++)
{
if(stor[k] == x)
{
vince = true;
if(vince==true)
{
System.out.println("Entered yes");
stor2[k] = "Yes";
}
else if(vince==false)
{
System.out.println("Entered no");
stor2[k] = "No";
}
}
}
}
for(int p=stor2.length-1; p>=0; p--)
{
System.out.print(stor2[p]);
}
}
}
让我知道它是否有效我简单地用“NO”填充数组并打印 从最后开始。