朕也来学学 发表于 2023-11-3 10:51:23

用C语言基础写,就用循环语句这些,尽量不用数组算

//1. 请编写程序,找出斐波那契数列中数值不超过 4 百万的项,并计算这些项中值为偶数的项之和。
//斐波那契数列中,从第三项开始,每一项被定义为前两项的数字之和。
从 1 和 2 开始,斐波那契数列的前 10 项应该是这样:1, 2, 3, 5, 8, 13, 21, 34, 55, 89,

isdkz 发表于 2023-11-3 10:51:35

这个问题可以使用循环语句来解决。我们可以使用两个变量来保存斐波那契数列中的前两个数,然后使用循环来计算并判断每一项的值是否超过 4 百万,并且是否为偶数。如果满足条件,则将该项的值累加到一个变量中,最后输出累加的结果。

下面是使用 C 语言编写的代码示例:

#include <stdio.h>

int main() {
    int num1 = 1;// 第一项
    int num2 = 2;// 第二项
    int sum = 0;// 保存偶数项的和

    while (num1 <= 4000000) {
      if (num1 % 2 == 0) {
            sum += num1;
      }

      // 计算下一项
      int nextNum = num1 + num2;
      num1 = num2;
      num2 = nextNum;
    }

    printf("值为偶数的项之和为:%d\n", sum);

    return 0;
}


这段代码首先初始化了第一项和第二项的值为 1 和 2,然后使用 while 循环来计算并判断每一项的值。如果当前项的值是偶数,则将其累加到 sum 变量中。在每一次循环中,我们还需要计算下一项的值,并更新 num1 和 num2 的值,以便进行下一次循环。

最后,我们输出 sum 的值,即为斐波那契数列中数值不超过 4 百万的项中值为偶数的项之和。

Mike_python小 发表于 2023-11-3 10:52:43


#include <stdio.h>

int main() {
    int limit = 4000000;
    int sum = 0;
   
    int a = 1;
    int b = 2;
    int c = a + b;

    // 遍历斐波那契数列,计算偶数项的和
    while (c <= limit) {
      if (c % 2 == 0) {
            sum += c;
      }
      a = b;
      b = c;
      c = a + b;
    }

    printf("值为偶数的斐波那契数列项之和:%d\n", sum);

    return 0;
}


解题思路:
1. 首先,我们定义变量limit为4000000,表示斐波那契数列中项的上限。
2. 然后,我们定义变量sum为0,用于存储偶数项的和。
3. 接着,我们定义三个整数变量a、b和c,分别表示斐波那契数列中的前两项和当前项。
4. 使用循环遍历斐波那契数列,初始时将a赋值为1,b赋值为2,c赋值为3。
5. 在每次循环中,判断当前项c是否小于等于limit,如果小于等于则执行以下操作:
   - 判断c是否为偶数,如果是偶数则将其加到sum中。
   - 更新a、b和c的值,分别将b赋值给a,将c赋值给b,并计算新的c值。
6. 循环结束后,输出偶数项的和sum。

代码解释:
- 第4-5行定义三个变量a、b和c,初始时a为1,b为2,c为3,表示斐波那契数列的前两项和当前项。
- 第8-14行使用while循环遍历斐波那契数列,循环条件为c小于等于limit。
- 第10行判断当前项c是否为偶数,如果是则将其加到sum中。
- 第12-14行更新a、b和c的值,将b赋值给a,将c赋值给b,并计算新的c值。
- 第17行输出偶数项的和sum。

总结:
通过使用循环和条件判断,我们可以遍历斐波那契数列,并计算其中偶数项的和。在循环中,我们通过更新变量的值来实现数列的迭代。

球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:}
页: [1]
查看完整版本: 用C语言基础写,就用循环语句这些,尽量不用数组算