您的位置:首页 > 其它

求出分数序列:2/1,3/2,5/3,8/5,13/8,21/13...的前20项之和

2008-05-07 00:35 330 查看



/** *//**


* FractionSerial.java


* 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...


* 求出这个数列的前20项之和。


* @author 邓超(CodingMouse)


* @version 0.2 2008-5-4


* 开发/测试环境:jdk1.6 + eclipse SDK 3.3.2


*/






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);


}


}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐