问题是:
编写一个程序,从屏幕上读取两个整数min和max,并输出min(包括)和max(不包括)之间所有整数平方的总和。如果min大于max,则程序应输出" min应小于max!"。例如:
>4
>9
190 (= 4² + 5² + 6² + 7² + 8²)
>14
>3
min should be smaller than max!
我的代码:
using System;
namespace ForLoops
{
class SumOfSquares
{
static void Main(string[] args)
{
int sum = 0;
int min = int.Parse(Console.ReadLine());
int max = int.Parse(Console.ReadLine());
for (int i = min; i < max; i = i++)
{
sum = i * i;
}
Console.WriteLine(sum);
}
}
}
当我得到190时,我一直得到68分。
答案 0 :(得分:1)
所以答案是您使用 For 循环语句,这样您就可以获得 2 个示例。同时回答。
int min = int.Parse(Console.ReadLine());
int max = int.Parse(Console.ReadLine());
if(min > max)
{
Console.WriteLine("min should be smaller than max!");
}
else
{
int sum = 0;
for(int i = min; i < max; i++)
{
sum = sum + i*i;
}
Console.WriteLine(sum);
}
答案 1 :(得分:0)
您的代码存在两个缺陷:
i++
增加i
,但会返回之前的值。因此,i = i++
您永远不会增加i
,因为您始终会将值重新分配给增量之前的值。这会导致无限循环。sum = i * i;
分配了单独的产品。您需要使用sum += i*i;
添加它们。所以你的最后一个循环看起来像那样:
int sum = 0;
for (int i = min; i < max; i++)
sum += i * i;
答案 2 :(得分:0)
Linq 可以摆脱显式循环(让.net为你工作):
using System.Linq;
...
int min = 4;
int max = 9;
int sum = Enumerable
.Range(min, max - min) // from min to max (not included)
.Sum(x => x * x); // sum up squares