请教一个算法:计算N项的Fibonacci数列的和,其中第N项是数列中最大的不超过4百万的数 如题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 import java.util.*;public class Fibonacci { static ArrayList<Integer> list = new ArrayList<Integer> (); static int nNum; public static int findN(int n){ if(n <= 0){ System.err.println("Error!"); return -1; } else if(n == 1) nNum = 0; else if(n == 2) nNum = 1; else nNum = findN(n-1) + findN(n-2); return nNum; } public static void main(String args[]){ int sum = 0; for (int i=1; i<40; i++){ if (findN(i) < 4000000){ sum += findN(i); } } System.out.println(nNum); System.out.println("\n"+ sum); }}390881699227464至于为什么循环到40 还是手算的 根据第n项的表达式求出来的 代码里的那个ArrayList没用 开始我还想直接循环递归 太慢了 我现在还没想出怎么确定哪一项是大于4000000的 求解java输入输出流的一道题 struts2中是action返回值问题 关于java类的范式设计问题 郁闷了,高分了,关于反斜杠的问题 用JAVA写记事本中的如何实现“转到”功能和如何调用系统字体对话框??? ECLIPSE下JBOSS启动问题 请问我用Opera的浏览器看这里的贴的时候为什么会显示不出这里的格式? 安装jdk1.1.8在98 和2000下始终不能用是什么原因? Java中 byte weblogic生成的java放在哪里 啊。 请教一个String数组排序的问题? 字符串按规则截取
static ArrayList<Integer> list = new ArrayList<Integer> ();
static int nNum;
public static int findN(int n){
if(n <= 0){
System.err.println("Error!");
return -1;
}
else if(n == 1)
nNum = 0;
else if(n == 2)
nNum = 1;
else
nNum = findN(n-1) + findN(n-2);
return nNum;
}
public static void main(String args[]){
int sum = 0; for (int i=1; i<40; i++){
if (findN(i) < 4000000){
sum += findN(i);
}
}
System.out.println(nNum);
System.out.println("\n"+ sum);
}
}
390881699227464
至于为什么循环到40 还是手算的 根据第n项的表达式求出来的