/*
1、 求斐波那契数列第n项,n<30,斐波那契数列前10项为 1,1,2,3,5,8,13,21,34,55
需求:
1.懂得如何构造斐波拉契数列,即:a=b=1;c=a+b;a=b;b=c;
2.只求第n项,因此要使用Scanner输入数字n;
3.要求n<30,在n>=30时,输出“n大于30不行”;
4.自己添加的多次循环,n<=0时中断。
现在菜鸟我花了半小时完成需求,求高手帮忙简化代码;
*/
import java.util.Scanner; //通过键盘输入一个n
class Demo
{
public static void main(String[] args)
{
while(true) //多次循环
{
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个小于30的数字n:");
int n = sc.nextInt();
if(n>=30) //判断n的大小
{
System.out.println("输入的数字n不合法");
}
else if(n>=1) //n介于1和29间时,输出斐波那契中该项
{
int a = 1;int b = 1;
if(n==1)
{
System.out.println("斐波那契数列第1项为:1");
}
else
{
for (int i = 1;i <= n ;i++ )
{
int c = a+b;
a = b ;
b = c;
if(i+1 == n) //判断数列中第n项并输出
{
System.out.println("斐波那契数列第"+n+"项为:"+a);
}
}
}
}
else //当n<=0时,中断循环
{
break;
}
}
}
}
|
|