本文将为大家带来“有规律的数列求和”算法的一个解法与详细解释,方法不唯一,本篇文章只列举出一种方法,可以先练习,练习之后查看代码,这样更加有助于提高。
文章目录- 一、题目
- 二、解题思路
- 三、代码(含详细注解)
- 四、代码解读
- 五、致读者
一、题目
题目描述: 有一分数序列: 2/1 3/2 5/3 8/5 13/8 21/13...... 求出这个数列的前N项之和,保留两位小数。 输入 N 输出 数列前N项和 运行结果: 样例输入:10 样例输出:16.48
以上是本题的题目,需要求出该分数序列的前N项和,N由控制台输入,动手练习一下吧!
二、解题思路
当看到本题时,最好的入手点就是寻找规律,不难发现,分子和分母的变化时存在一定规律的,那么就根据观察分子分母的变化来实现这到算法题吧。
三、代码(含详细注解)public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int N = input.nextInt(); //输入项的个数
float a = 2; //分子
float b = 1; //分母
float result = 0; //接受记结果
for(int i=0 ; i
四、代码解读
相信看了注释大家也都了解了,这里主要注意的就是for循环中 分子分母变化的代码,如下:
result+=a/b; //第一项为2/1
float temp = a; //将a存在临时变量temp中
a+=b; //按照规律,分母为:分子+分母
b=temp;//将存在临时变量temp的值赋值给b
第一项已知是2/1,所以第一项我们给固定的数
由2/1 3/2 5/3 8/5 13/8 21/13可以看出,
大致的规律为:分子为前一项的分母,分母为前一项的分子与分母之和。
第一步,我们先将a存在临时变量temp中
这里说一下为什么要用临时变量?
原因:因为我们要改变a的值,但又要将原来a的值赋值给b
因此先将a的值存在临时变 量,这样后面的变化将不影响对b的赋值。
第二步,我们求出分母,即前一项的分母+分子,即a+b
第三步,将前一项的a赋值给b
五、致读者
如果本篇文章为您带来了收获,给小编点个关注吧!



