Hen*_*ren 1 c# arrays sum-of-digits negative-number
我有这段代码:
int[] primes = generatePrimes(bound);
int sum = 0;
for (int i = 0; i < primes.GetLength(0); i++)
{
if (sum < 0)
{
Console.WriteLine(sum);
}
sum += primes[i];
}
Run Code Online (Sandbox Code Playgroud)
我检查过以确保我的数组"primes"只包含正整数,如下所示:
if (primes[i] < 0)
{
Console.WriteLine(primes[i]);
}
Run Code Online (Sandbox Code Playgroud)
但什么都不打印.但是,由于某种原因,总和有时会是负数,并且在我运行第一段代码时会打印出来.数组的长度是148933.我不太了解C#,但我不认为长度在这里应该重要吗?:S
如果有人知道为什么会这样,我会非常感谢任何帮助.
数组的长度是148933.
很可能你的总和超过int的可能值(-2,147,483,648到2,147,483,647),这就是你看到负数的原因.
使用long您和运算.但是您可能需要BigInteger来计算总和.
| 归档时间: |
|
| 查看次数: |
2064 次 |
| 最近记录: |