You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从10之后的整数累加至接近1000的While循环代码问题求助

问题分析与解决方案

原代码的核心问题有两个:

  • 初始值错误:a设为10、i设为10,导致把10本身加入了累加,不符合“10之后的整数累加”的要求。
  • 循环判断逻辑错误:仅判断累加前的a是否小于1000,导致最后一次累加时,结果会直接超过1000。

方案一:累加至不超过1000的最接近值

如果要求结果不超过1000且尽可能接近,调整循环逻辑为先判断累加后是否超上限,再执行累加操作:

int i = 11; // 从10之后的第一个整数开始
int a = 0;  // 初始累加和为0

// 先判断加上当前i后是否不超过1000,再执行累加
while (a + i <= 1000)
{
    a += i;
    i++;
}

Console.WriteLine(a); // 输出最接近1000且不超过的累加和
Console.WriteLine(i); // 输出下一个未被累加的整数

方案二:取最接近1000的值(允许超过)

如果允许结果超过1000,只需要比较“当前累加和”与“加上下一个数后的和”哪个更接近1000,再决定最终结果:

int i = 11;
int a = 0;
int nextSum;

while (true)
{
    nextSum = a + i;
    if (nextSum > 1000)
    {
        // 比较两个值与1000的差距,选更近的那个
        if (1000 - a < nextSum - 1000)
        {
            break; // 当前a更近,保留
        }
        else
        {
            a = nextSum; // nextSum更近,替换
            i++;
        }
        break;
    }
    a = nextSum;
    i++;
}

Console.WriteLine(a);
Console.WriteLine(i);

内容的提问来源于stack exchange,提问作者Slepcho

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 17:01:06