importjava.util.*;
publicclassTest{
publicstaticvoidmain(String[]args){
Scannerin=newScanner(System.in);
print("请输入一个大于0的整数:");
while(true){
try{
intn=in.nextInt();
if(n<=0)thrownewInputMismatchException();
for(inti=1;i<=n;i++){
print(fibonacci(i));
}
break;
}catch(InputMismatchExceptione){
print("非法输入!请输入一个大于0的整数:");
in.next();
}
}
}
/**
*自定义打印函数
*@paramobjobject
*/
publicstaticvoidprint(Objectobj){
System.out.println(obj);
}
privatestaticMapm=newHashMap();
/**
*计算斐波那契数列的第n个元素
*@paramnint
*@return斐波那契数列的第n个元素
*/
publicstaticlongfibonacci(intn){
if(n<=2)return1;
if(m.containsKey(n))returnm.get(n);
longtemp=fibonacci(n-1)+fibonacci(n-2);
m.put(n,temp);
returntemp;
}
}