
/** * 题目名称菲波那契数列 p * 题目来源http://noi.openjudge.cn/ch0105/17/ p * 程序功能计算菲波那契数列指定项的值 * * author 潘磊just_panleijust.edu.cn * version 1.0 */importjava.util.Scanner;publicclassMain{/** * 返回菲波那契数列指定项的值。 * * param n 指定项的序号。 * return 菲波那契数列第n项的值。 */publicintfibonacci(intn){if(n3){// 如果是第一项或者第二项return1;// 返回1}intf11;// f(n-1)代表当前项的前一项初始为1intf21;// f(n-2)代表当前项前一项的前一项初始为1intfn-1;// f(n)代表当前项初始为-1这里初始值可随意给定/* 从第三项依次遍历到第n项 */for(inti3;in;i){fnf1f2;// 首先计算当前的f(n)f2f1;// 其次用f(n-1)更新f(n-2)f1fn;// 然后用f(n)更新f(n-1)}returnfn;}publicstaticvoidmain(String[]args){MaincallnewMain();ScannerinputnewScanner(System.in);intkinput.nextInt();System.out.print(call.fibonacci(k));}}/** * 题目名称菲波那契数列 p * 题目来源http://noi.openjudge.cn/ch0105/17/ p * 程序功能计算菲波那契数列指定项的值 * * author 潘磊just_panleijust.edu.cn * version 2.0 */// 递归方法在本题会出现TLE错误但不代表程序是错的仅是运行时间超限importjava.util.Scanner;publicclassMain{/** * 返回菲波那契数列指定项的值。 * * param n 指定项的序号。 * return 菲波那契数列第n项的值。 */publicintfibonacci(intn){if(n3){// 如果是第一项或者第二项return1;// 返回1}// 递归调用方法自身f(n) f(n-1) f(n-2)returnfibonacci(n-1)fibonacci(n-2);}publicstaticvoidmain(String[]args){MaincallnewMain();ScannerinputnewScanner(System.in);intkinput.nextInt();System.out.print(call.fibonacci(k));}}