C语言循环控制

描述

求出一些有规则的分数的数据之和。(谭浩强 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); }

运行后,控制台输出如下:

11_6.8答案.png

我们定义了一个临时 变量 t ,来接收当前分数的分母。用一个数字 s 来接收需要计算的数据总和。