根据下列求满足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;
}
递归的实现方式是函数不停地自己调用自己
如图所示,当我们需要第50个斐波那契数列中的数时
函数需要从50开始,49、48,再48、47……
这么一直递归到第3个斐波那契列数,才能逐级返回每项的数字,得出最终答案
这就大大增加了程序运行的时间!
你可能会发现程序依旧很快运行完了,那是因为现在电脑cpu的运行速度已经非常快了
但在有运行时间要求的题目中,这样浪费时间是万万不可的