在下贰蓉


私信TA

用户名:zjr030602

访问量:3008

签 名:

自然选择,前进四!

等  级
排  名 8350
经  验 1164
参赛次数 0
文章发表 4
年  龄 19
在职情况 学生
学  校
专  业

  自我简介:

解题思路:


观察数列可知其规律,从第二项开始,分子是前一项的分子和分母数字之和,分母的大小是前一项分子
将分子定义为up,分母定义为down,在循环次数为n的for循环里,要做两件事:

第一,把up/down的值加进sum;第二,改变up和down的值为下一次循环做准备。
第一件事不难,但第二件里值得注意的是up改变为up+down之后,down的值不能直接用up赋予,因为此时up已经不是原来那个up了。我们需要引入另一个变量来存放原来的up,它就是a。首先让a存放up原先的值,再改变up,最后再将a的值赋给down,这样就能达到目的了。


注意事项:


1. 改变分子之后,要想正确地改变分母,需要另一个变量帮忙。

2. for循环中,可以将第一项的up和down写在初始值处,也可以写在for循环之前,这样不会影响循环体内up和down的改变。


参考代码:

#include <stdio.h>
int main(){
    int n,up,down,a,i;
    double sum;
    scanf("%d",&n);
    for(i=1,down=1,up=2;i<=n;i++)
    {
        sum += 1.0*up/down;
        a = up;
        up = up + down;
        down = a;
    }
    printf("%.2lf",sum);
return 0;
}




 

0.0分

23 人评分

  评论区

sum未初始化
2023-04-06 09:21:31
通俗易懂
2022-04-11 19:31:44
  • «
  • 1
  • »