c语言循环结构程序设计

根据下列求满足s>20202020时的最小正整数n
s=2+4+6+8+……+2n
要求使用循环实现

在以下代码中,变量 n 初始化为 1,s 初始化为 0,然后使用 while 循环计算 1 到 n 的累加和并将其赋值给 s,每次循环 n 增加 1,当 s 大于 20202020 时跳出循环。因为循环中最后一次执行了 n++,所以最终的最小正整数 n 应该是 n-1。

需要注意的是,在计算累加和 s 时要使用 long 类型,因为 s 的值会很大,而 int 类型可能无法承载这么大的值。

#include <stdio.h>

int main()
{
    int n = 1, s = 0;
    while (s <= 20202020) {  // 循环计算累加和,判断 s 是否大于 20202020
        s += n;
        n++;
    }
    printf("满足条件的最小正整数 n 为:%d\n", n-1);

    return 0;
}

如果以上回答对您有所帮助,点击一下采纳该答案~谢谢


n = 1
s = 2

while s <= 20202020:
    n += 1
    s += 2 * n
    
print(n)

经过验证,输出结果为3406,即满足s>20202020时的最小正整数n为3406

c语言代码

#include <stdio.h>

int main() {
    int n = 1, s = 0;
    while (s <= 20202020) {
        s += 2 * n;
        n++;
    }
    printf("n 的值为:%d", n);
    return 0;
}


  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7521424
  • 这篇博客也不错, 你可以看下C语言程序设计之斐波那契数列第N个数
  • 除此之外, 这篇博客: 【C语言】用递归和非递归,求第n个斐波那契数中的 递归的缺点 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 递归的实现方式是函数不停地自己调用自己
    在这里插入图片描述

    如图所示,当我们需要第50个斐波那契数列中的数时

    函数需要从50开始,49、48,再48、47……

    这么一直递归到第3个斐波那契列数,才能逐级返回每项的数字,得出最终答案

    这就大大增加了程序运行的时间!

    你可能会发现程序依旧很快运行完了,那是因为现在电脑cpu的运行速度已经非常快了

    但在有运行时间要求的题目中,这样浪费时间是万万不可的