【问题标题】:Loop Add all even numbers循环添加所有偶数
【发布时间】:2014-03-26 03:49:56
【问题描述】:

如何将 1000-2000 的所有偶数相加并显示总数? 如果您能帮助我,我将不胜感激。

        int sum = 1000;
        int counter = 1;
        while (counter >= 2000)
        {
            if (counter % 2 == 0)
            {
                sum += counter; 
                counter++;
            }
        }
        Console.WriteLine("{0}", sum);
        Console.ReadLine();

【问题讨论】:

  • 想一想。为什么要将sum 初始化为 1000?如果你把这些数字加在纸上,你会这样做吗?此外,如果您将counter 初始化为 1,那么counter 是否会大于或等于 2000?
  • 你的前三行是错误的。其余的看起来不错。想一想代码将如何工作:在“头脑中”运行它几个循环。
  • 我可能太累了,但是……Console.Writeline(3000*501/2)?

标签: c# loops counter


【解决方案1】:

试试这个:

var sum = Enumerable
    .Range(1000, 1001)
    .Where(n => n % 2 == 0)
    .Sum();

Console.WriteLine(sum);

要让你的代码工作,你应该让它看起来像这样:

int sum = 0;
int counter = 1000;
while (counter <= 2000)
{
    if (counter % 2 == 0)
    {
        sum += counter; 
    }
    counter++;
}

或者你可以这样做:

int sum = 0;
for (var counter = 1000; counter <= 2000; counter ++)
{
    if (counter % 2 == 0)
    {
        sum += counter; 
    }
}

或者这样:

int sum = 0;
for (var counter = 1000; counter <= 2000; counter ++)
{
    sum += (counter % 2 == 0) ? counter : 0; 
}

这个是我最喜欢的:

int sum = 0;
var counter = 1000;
loop:
    sum += (counter % 2 == 0) ? counter : 0; 
    if (++counter > 2000)
        goto exit;
    goto loop;
exit:

希望你现在可以获得 A+。

【讨论】:

  • 这很可能是一个家庭作业问题,我们不应该直接提供答案:meta.programmers.stackexchange.com/questions/6166/…。请删除您的答案。
  • @musical_coder - 很公平。我必须承认,代码中确实存在许多基本问题。
  • 是的,肯定有问题,但 IMO 帮助完成作业的最佳方式就是提供提示。
  • @musical_coder - 我应该快一点。我的错。
  • 没问题。我会取消我的反对票,但希望您在未来如何处理家庭作业问题上同意我的看法。顺便说一句,答案很好!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-09
  • 2021-10-08
  • 1970-01-01
相关资源
最近更新 更多