题目
解决代码及点评这个题目,还是考察for循环的使用 以及数列规律,该数列的特点是第n个分子 = 第n-1个分子 + 第n-2个分子,分母也是此规律 而另外一个规律是第n个分子和第n-1个分母值相同 所以这里使用了一个辅助数组来做计算
- <pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code"></pre><pre code_snippet_id="91880" snippet_file_name="blog_20131202_2_4224470" class="cpp" name="code">/************************************************************************/
- /*
- 6. 有一分数序列 ,求出这个数列的前20项之和。
- */
- /************************************************************************/
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- void main()
- {
- float a[21]={0};
- float sum=0;
- a[0]=1;
- a[1]=2;
- for (int i=2;i<21;i++) // 计算所有的分子分母值,保存在数组a里,那么a的值是1,2,3,5,8....
- {
- a=a[i-1]+a[i-2];
- }
- for (int i=0;i<20;i++) // 再来一次循环进行除法和累加
- {
- sum+=a[i+1]/a; // 这里a是float型,不是整形,如果是整形,除法将是整除,无法得到准确的值
- }
- printf("前二十项之和为%f",sum);
- system("pause");
- }</pre><br><br>
|