求出一些有规则的分数的数据之和。(谭浩强 C 语言 第三版 129 页第 6.8 题)
有一分数序列 2/1,3/2,5/3,8/5,13/8,21/13,… 求出这个数列的前 20 项之和。
题目的规律是下个分数的分母是上一个分数的分子,上个数的分母和分子之和是当前分数的分子。我们可以定义变量用来接收当前分数的分子和分母,然后求和。
#include <stdio.h>
void main()
{
printf("嗨客网(www.haicoder.net)\n\n");
int i , t , n = 20 ;
float a = 2, b = 1 , s = 0;
for( i = 1; i<= n ; i++)
{
s = s + a/b;
t= a;
a = a + b;
b = t;
}
printf("sum = %9.6f \n",s);
}
运行后,控制台输出如下:
我们定义了一个临时 变量 t ,来接收当前分数的分母。用一个数字 s 来接收需要计算的数据总和。