迪迦


私信TA

用户名:dotcpp0776032

访问量:1127

签 名:

等  级
排  名 6760
经  验 1380
参赛次数 0
文章发表 25
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

解题思路:

首先从题目给出的数列中可以看出,第An项的分母是An-1项的分母与分子之和,而第An项的分子是An-1项的分母,所以分子可以假设为a,分母假设为b,则后一项的分子是a+b,分母是a,再依次求和

注意事项:

1、分子和分母在赋值之后是不会保留原来的值的,因此需要一个中间变量来接收这个变化时的临时的分子、分母的值。
2、由于求和的Sn是浮点数,并且分数的结果也是浮点数,因此需要定义的分子分母的类型为浮点类型


参考代码:

#include <stdio.h>
int main()
{
    int N;
    float Sn = 0.00, a = 1.00, b = 1.00, t = 0.00;
    scanf("%d", &N);
    for (int i = 1; i <= N; i++)
    {
        t = a;     // 使用临时变量t,用来保存a的值
        a = t + b; // 此时a的值是 t+b,即a的初始值加上b的初始值
        b = t;     // 此时t的值为a的初始值,b的值被更新为a的初始值
        // a = a + b;   //如果不使用临时变量来保存a的值,a的值会被覆盖,导致计算错误
        // b = a;       //a的值在上一步变成了新的值(a+b),此时执行这一步将会使b的值也变成a+b
        Sn += a / b;
    }
    printf("%.2f\n", Sn);
    return 0;
}


 

0.0分

0 人评分

  评论区

  • «
  • »