谭浩强C++课后习题7——分数序列之和
题目描述:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13,…求出这个数列的前20项之和。
算法思路:先观察每一项分母与分子的关系,后一项的的分母等于前一项的分子,后一项的分子等于前一项分子分母之和,因此先用temp保存前一项的分子,再把前一项分子分母相加作为后一项的分子,后一项的分母等于原分子的值,也就是temp的值,循环20次得到结果。
#include<iostream>
using namespace std;
int main() {
double sum = 0, number = 0, fenzi = 2, fenmu = 1, temp;
for (int i = 1;i <= 20;i++) {
number = fenzi / fenmu;
sum += number;
temp = fenzi;
fenzi = fenzi + fenmu;
fenmu = temp;
}
cout << "sum=" << sum << endl;
return 0;
}
运行结果如下: