程序代码:
public class Test {
public static void main(String args[]) {
int x1 = 1;
int sum = 0;
int n = 7;
for (int i = 1; i <= n; i++) {
x1 = func(i);
sum = sum + x1;
}
System.out.println("sum=" + sum);
}
public static int func(int x) {
if (x > 2)
return (func(x - 1) + func(x - 2));
else
return 1;
}
}
目前我只能想到
把n一个一个往上加,加到func(n)大于100的时候,记下这个数,把它存到数组里去
然后再加一直到加到func(n)大于200的时候,然后再判断数组里的数哪些是奇数,是就把它们加起来
这样的方法不会太慢吧,因为func(n)当n变大的时候,它的值大的很快的,不用判断很多就可以得出一个范围之内的数了
那你看看能不能在我给你的源程序里改如,if x >=100 and x<=200,
在判断在这之间的数是否为奇数,
用SUM=SUM+FI(I)方法求出和
这个题的答案是0
你看看这个程序可不可以
public static int getCount(){
int i = 1;
int j = 1;
int sum=0;
while(i<200 || j<200){
int k = i+j;
if(k>100 && k<200 && k%2!=0){
sum+=k;
}
System.out.println("i="+i);
System.out.println("j="+j);
System.out.println("k="+k);
System.out.println("**********************");
i=j;
j=k;
}
return sum;
}