本帖最后由 Mr._Strange 于 2014-5-24 09:09 编辑
package com.itheima;
/* 3、 求斐波那契数列第n项,n<30,斐波那契数列前10项为 1,1,2,3,5,8,13,21,34,55
*
* 解答思路:1,仔细观看斐波那契数列,发现数列的n等于前面两个数的和(n>=3)
* 2,求30(n<30)项内的斐波那契数列数,,用到循环来实现
* 3,接收键盘录入的数据
* 4,要包含友好提示,将不正常的数据包含在内
* 注意的地方:因为设定的键盘接收数据类型为Int,所以,输入其它类型,会发生异常错误。
* 且,接收斐波那契数列的数据类型也为int,计算的斐波那契数过大,超出int类型范围会是计算结果不对,最多能计算到第46项斐波那契数。
* */
import java.util.Scanner;
public class Test3 {
public static void main (String[] args){
Scanner sc = new Scanner(System.in);//接收键盘录入
while (true){
System.out.println("请问您要获取的斐波那契数列第几项?");//友好提示语句
int getNumber =sc.nextInt();//将接收键盘输入进来的int类型传递给getNumber
if (getNumber<1||getNumber>46){
System.out.println("您输入的数据有误,请重新输入!");//如果getNumber的数据小于1或者大于46,则提示输入错误,并跳出本次循环,进入下一次循环
continue;
}
int x =0,y=1;//建立数据斐波那契数列第零个数为0,第一个数为1
for(int n=1;n<getNumber;n++){//循环判断语句,用交换的方法,将y赋给x,将y+x赋给y
int temp =y;
y=x+y;
x =temp;
}
System.out.println("斐波那契数列第"+getNumber+"项为:"+y);//输出结果
}
}
}
|