黑马程序员技术交流社区
标题:
请帮忙解决疑惑
[打印本页]
作者:
完美恋爱
时间:
2013-11-8 15:45
标题:
请帮忙解决疑惑
本帖最后由 完美恋爱 于 2013-11-8 19:42 编辑
22、有一分数序列2/1,3/2,5/3,8/5,13/8,21/13,……
求出这个数列的前20项之和。
class ABC{ public static void main(String[] args)
{
int a = 2;
int b = 1;
int p = 0;
int q = 0;
double sum = a/b;
for(int i = 1; i <= 18; i++)
{
p = a + b;
q = a;
sum = sum + p/q;
}
System.out.println("sum = "+sum);
}
}
请问我编写的代码哪里有错误了,为什么得数跟我用计算器加的数不一样呢?
作者:
~﹏~
时间:
2013-11-8 15:53
你可以先试着求前三项或者前五项之和,
你用计算器加二十项觉得会出错的
因为计算器会将结果进行精度处理的。
public static void main(String[]args){
int b = 2;
int a = 1;
double sum = 0;
for(int i = 0;i < 20;i++){
if(i%5 == 0){
System.out.println();
System.out.print(b+"/"+a+"+");
int temp = 0;
sum += b/a;
temp = a;
a = b;
b = temp + b;
}else if(i == 19){
System.out.print(b+"/"+a+"=");
int temp = 0;
sum += b/a;
temp = a;
a = b;
b = temp + b;
}else{
System.out.print(b+"/"+a+"+");
int temp = 0;
sum += b/a;
temp = a;
a = b;
b = temp + b;
}
}
System.out.println(sum);
}
}
复制代码
作者:
麦者
时间:
2013-11-8 15:55
21/13 这些数算出来的是1啊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2