C语言编程100题-8.6

8.6
有一分数序列如下: 2/1, 3/2, 5/3, 8/5, 13/8, 21/13, … 即后一项的分母为前一项的分子,后项的分子为前一项分子与分母之和,求其前n项之和。 输入:整数,项数输出:实数,和
样例:
6
10.0071

#include<stdio.h>
int main()
{
       int m=1, n=2, i,a; float m1,n1,c=2;//m1、m2的作用是把整数转化为实数,c为初始的2/1
       scanf("%d", &a);
       for (i = 2; i <= a; i++)//从第2个开始
       {
              n = m + n; m = n - m;//注意要先转变分子,再转变分母,直接令n=m+n;m=n;是错的,因为第一次转变后,n不再是原先的n,而是n+m,所以要回减m
              m1 = m, n1 = n;//类型转换
              c = c + n1 / m1;
       }
       printf("%g", c);//默认输出4位小数
       system("pause");
       return 0;
}

猜你喜欢

转载自blog.csdn.net/nollysoul/article/details/89820327