求序列2,3/2,5/3,8/5,13/8,21/13,……前N项之和?

求序列2,3/2,5/3,8/5,13/8,21/13,……前N项之和?
详细程序和每步的解读。谢谢!!!!

public class FractionSerial ...{

public static void main(String[] args) ...{

/**//*
* 注意:参与数列项运算的变量必须声明为double类型
* 才能得到正确答案:32.66026079864164 ;
* 如果声明为int类型,在进行计算时各数列项的
* 值会发生自动类型转换,各项均从double类型
* 转换成int类型,所以会丢失精度,导致计算结
* 果是一个错误答案:21。
*/

//计算该数列的前num项
int num = 20;
//保存前num项之和
double sum = 0;
//x为分子,y为分母
double x = 2 , y = 1;
//用于交换值的中间变量
double temp;

//控制台输入提示
System.out.println("该数列前" + num + "项内容为: ");

//循环处理生成的数列每一项
for(int i = 1 ; i <= num ; i++) ...{
//打印出数列前num项内容
System.out.print((int)x + "/" + (int)y);
//在指定项数的非末尾项后打印逗号以分隔各项
if (i != num) ...{
System.out.print(", ");
}
//累加保存数列前i项的和值
sum += x / y;
//中间变量temp保存当前分子值
temp = x;
//x值赋为当前分子值与当前分母值之和,构成数列下一项的分子
x += y;
//y值赋为中间变量temp的值,即当前项分子为数列下一项的分母
y = temp;
}
//控制台输出计算信息
System.out.print(" 以上各项之和为:"+sum);
}
}

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/CodingMouse/archive/2008/05/07/2405134.aspx
温馨提示:答案为网友推荐,仅供参考
相似回答