本帖最后由 阿霞 于 2015-3-30 15:01 编辑
正在做基础测试题,题目求斐波那契数列第n项,n<30,斐波那契数列前10项为 1,1,2,3,5,8,13,21,34,55
代码
import java.util.*;
public class GetDemo1
{
public static void main(String[] args)
{
getNum();
}
//定义方法从控制台输入项数n
public static void getNum()
{
Scanner in=new Scanner(System.in);
sop("请输入项数:");
//获取输入值
int i=in.nextInt();
boolean flag=true;
while(flag)
{
//定义if语句判断项数的范围打印斐波那契数列值
if(i<30&&i>=1)
{
flag=false;
sop("斐波那契数列第"+i+"项值为:"+getValue(i));
}
else
sop("您输入的值错误,请重新输入。值范围0-29");
}
in.close();
}
//定义方法获取斐波那契数列第n项值,n<30
public static int getValue(int i)
{
int[] arr=new int[30];
arr[0]=arr[1]=1;
//定义for循环,利用公式获取值
for(int n=2;n<30;n++)
{
arr[n]=arr[n-1]+arr[n-2];
}
return arr[i-1];
}
//定义输出方法
public static void sop(Object obj)
{
System.out.print(obj);
}
}
输入正确值没有问题
但是 输入错误值后 就会您输入的值错误,请重新输入。值范围0-29无限循环 不能自动到请输入项数
还想可以在明天之内提交通过呢
着急......
|