循环逻辑失败/JAVA
我需要从键盘扫描一个整数,打印出比插入的整数小的斐波那契数。 现在它打印所有的小号和一个大的。 需要改变一下时间循环逻辑失败/JAVA,java,while-loop,Java,While Loop,我需要从键盘扫描一个整数,打印出比插入的整数小的斐波那契数。 现在它打印所有的小号和一个大的。 需要改变一下时间 public class tp2 { public static int Fibo(int pos){ int retornado=0; if(pos==0 || pos==1){ retornado=pos; }else{ retornado=Fibo(pos-2)+Fibo(pos-1); }
public class tp2 {
public static int Fibo(int pos){
int retornado=0;
if(pos==0 || pos==1){
retornado=pos;
}else{
retornado=Fibo(pos-2)+Fibo(pos-1);
}
return retornado;
}
public static void main(String[] args) {
int tope,i, numero;
numero=0;
i=0;
Scanner stdin = new Scanner (System.in);
System.out.println("Ingrese un entero tope :");
tope = stdin.nextInt();
while (numero<tope){
numero=Fibo(i);
System.out.println(numero);
i++;
}
}
}
公共类tp2{
公共静态int Fibo(int pos){
int=0;
如果(pos==0 | | pos==1){
retronado=pos;
}否则{
retronado=Fibo(pos-2)+Fibo(pos-1);
}
返回纳多;
}
公共静态void main(字符串[]args){
一,一,数字;
数值=0;
i=0;
扫描仪标准输入=新扫描仪(System.in);
系统输出打印LN(“入口/入口/入口”);
tope=stdin.nextInt();
while(numero可能不是最漂亮的解决方案,但将您当前的while更改为:
while ((numero=Fibo(i))<tope){
System.out.println(numero);
i++;
}
while((numero=Fibo(i))可能不是最漂亮的解决方案,但将您当前的while更改为:
while ((numero=Fibo(i))<tope){
System.out.println(numero);
i++;
}
while((numero=Fibo(i))这样试试:
numero=Fibo(i);
while (numero<tope){
System.out.println(numero);
i++;
numero=Fibo(i);
}
numero=Fibo(i);
而(数字试着这样做:
numero=Fibo(i);
while (numero<tope){
System.out.println(numero);
i++;
numero=Fibo(i);
}
numero=Fibo(i);
while是一种不好的方法,它调用Fibo(i)
两次..它调用了两次fibo,以便通过递归获得fibonacci,然后调用fibo来决定是否打印它,然后再打印它。它工作正常,但您可以在同一个块中调用相同的函数两次,而您可以将其分配给变量。在这种情况下,这不会产生很大影响,但在将来,如果您希望得到相同的结果在这里,最好将结果赋给变量,这样您就不会面临性能问题。done`while(Fibo(i)这样做不好。它调用Fibo(i)
两次..它调用了两次fibo,以便通过递归获得fibonacci,然后调用fibo来决定是否打印它,然后再打印它。它工作正常,但您可以在同一个块中调用相同的函数两次,而您可以将其分配给变量。在这种情况下,这不会产生很大影响,但在将来,如果您希望得到相同的结果像这里一样,最好将结果赋给变量,这样你们就不会面临性能问题。谢谢!直接回答这个问题。`while(Fibo(i)谢谢!直接回答这个问题。`while(Fibo(i)