【发布时间】:2020-11-24 18:46:45
【问题描述】:
提前谢谢你,请注意我对 c# 相当陌生,
我正在尝试在 codewars 上对 kata 进行以下测试,但我在标题中收到错误,我不明白为什么?我在visualStudio上使用了相同的代码,它工作正常
测试: 如果我们列出所有小于 10 且是 3 或 5 倍数的自然数,我们会得到 3、5、6 和 9。这些倍数之和是 23。
完成解决方案,使其返回传入数字以下所有 3 或 5 的倍数之和。
注意:如果数字是3和5的倍数,只算一次
代码:
public static int Solution(int value)
{
int sum = 0;
for (int i= 1; i < value; i++)
{
int multiples3 = 3 * i;
int multiples5 = 5 * i;
if (multiples3 != multiples5)
{
sum = sum+multiples3+multiples5;
}
else
{
sum = sum + multiples3;
}
}
return (sum);
}
【问题讨论】:
-
您发布的代码没有错误:dotnetfiddle.net/VpreG7
-
错误出现在哪一行。我们有错误,但我们没有这条线。顺便说一句,这就是 CS0201 的意思:docs.microsoft.com/en-us/dotnet/csharp/language-reference/…
-
与问题无关,但此代码不会以任何方式解决问题。您可以使用
HashSet<int>进行存储,并使用两个while循环为其添加值(以避免if条件)。 -
逻辑上“if (multiples3 != multiples5)”这一行永远不会为真。还有“返还金额;”就足够了 - 不需要 "(" , ")" 。
-
@VytautasPlečkaitis 实际上这条线“if (multiples3 != multiples5)”总是正确的,这样当 3 和 5 的倍数相同时,它只会在 usm 中添加一个对于我刚刚添加的重新运行,只需检查
标签: c#