题目是这样:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。 我写的程序是,可能我的算法错了,我自己做了好久都没有做出来,所以请高手赐教。。public class HomeWork4
{
public static void main(String[] args)
{
int a=1,b=2;
int temp=0;
int sum=0;
for(int i=1;i<=20;i++)
{
sum=sum+b/a;
temp=b;
b=a+b;
a=temp;
i++;
} System.out.println(sum);
}
}
{
public static void main(String[] args)
{
int a=1,b=2;
int temp=0;
int sum=0;
for(int i=1;i<=20;i++)
{
sum=sum+b/a;
temp=b;
b=a+b;
a=temp;
i++;
} System.out.println(sum);
}
}
把几个变量改成float吧
{
public static void main(String[] args)
{
double a=1,b=2;
double temp=0;
double sum=0;
for(int i=1;i<=20;i++)
{
sum=sum+b/a;
temp=b;
b=a+b;
a=temp;
i++;
} System.out.println(sum);
}
}
package com.biao;import java.io.IOException;public class Test {
public static void main(String[] args) throws IOException {
// 2/1,3/2,5/3,8/5,13/8,21/13
float a = 2, b = 1, sum = 0;
final int times = 20;
float temp = 0;
for (int i = 0; i < times; ++i) {
sum += a / b;
temp = a;
a += b;
b = temp;
} System.out.println(sum);
}
}
i如果大于20,循环结束,
public static void main(String []args){
int a=1,b=2,temp=0;
int sum1=a,sum2=b;
for(int i=1;i<20;i++){
temp=b;
b=a+b;
a=temp;
sum1=sum1*a;
}
a=1;b=2;temp=0;
for(int i=1;i<20;i++){
temp=b;
b=a+b;
a=temp;
sum2=sum2+b*sum1/a;
}
System.out.println(sum2/sum1); }
}
public class HomeWork4
{
public static void main(String[] args)
{
double a=1,b=2;
double temp=0;
double sum=0;
for(int i=1;i<=20;i++)
{
sum=(double)sum+b/a;
temp=b;
b=a+b;
a=temp;
}
System.out.println(sum);
}
}