有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
发布网友
发布时间:2022-04-19 09:58
我来回答
共4个回答
热心网友
时间:2023-10-23 21:20
public class Test {
public static void main(String[] args) {
double sum = 0;
for(int i=1;i<=21;i++){
sum+=(getFibonacci(i+1)/getFibonacci(i));
}
System.out.println("2/1+3/2+5/3+8/5+13/8+21/13="+sum);
}
public static double getFibonacci(int n){
if(n==1||n==2){
return n;
}else{
return getFibonacci(n-1)+getFibonacci(n-2);
}
}
}
其实刚才那位的答案几乎就对了,不过不是return 1;因为如果这时候getFibonacci(2)得到也是1 。
热心网友
时间:2023-10-23 21:21
public class Sum{
public static void main (String[] args)
int a,b,c;
a=1;
b=2;
c=0;
for(int i =0;i<20;i++){
sum+=b/a
c=b;
b=a+b;
a=c;}
System.out.println("2/1+3/2+5/3+...="+sum)
}
试下看行不~!
热心网友
时间:2023-10-23 21:21
public class Test {
public static void main(String[] args) {
double sum = 0;
for(int i=1;i<=21;i++){
sum+=(getFibonacci(i+1)/getFibonacci(i));
}
System.out.println("2/1+3/2+5/3+8/5+13/8+21/13="+sum);
}
public static double getFibonacci(int n){
if(n==1||n==2){
return n;
}else{
return getFibonacci(n-1)+getFibonacci(n-2);
}
}
}
热心网友
时间:2023-10-23 21:22
public class Test {
public static void main(String[] args) {
double sum = 0;
for(int i=1;i<=21;i++){
sum+=(getFibonacci(i+1)/getFibonacci(i));
}
System.out.println("2/1+3/2+5/3+8/5+13/8+21/13="+sum);
}
public static double getFibonacci(int n){
if(n==1||n==2){
return 1;
}else{
return getFibonacci(n-1)+getFibonacci(n-2);
}
}
}
方法可能不是最优,但能解决问题,呵呵。