C# %=是否将获取集合的模块?
这就是我到目前为止得到的传递到Mod方法的集合的模数C# %=是否将获取集合的模块?,c#,C#,这就是我到目前为止得到的传递到Mod方法的集合的模数 public static void Mod(int[] nums) { int total = 0; foreach (int num in nums) { if (total == 0) { total = num; } else { total %= num; }
public static void Mod(int[] nums)
{
int total = 0;
foreach (int num in nums)
{
if (total == 0)
{
total = num;
}
else
{
total %= num;
}
}
Console.WriteLine("Mod: " + total);
}
我想知道的是,这是找到这个的正确方法,还是我会得到完全错误的答案;是的,你会得到正确的结果;只要您希望结果是余数的余数,依此类推数组的长度。在这方面,我同意flydog57的评论: 现在,我从未有过使用%=;我觉得有点奇怪 我们都知道x%=y和x=x%y是一样的;在这个用例中,我们可以使用%=来简化代码。如果要求您执行顺序模数运算,得到90/72的余数,然后得到该余数的余数,则您的解决方案是正确的。但是,如果您的问题不是连续模,请更新您的问题以澄清 另一方面,您的代码可以简化和改进:
public static int Mod(int[] nums) {
int result = nums[0];
for (int i = 1; i < nums.Length; i++) {
// Division of zero is zero, and division by zero is only allowed with doubles.
if (result == 0 || nums[i] == 0)
return 0;
result %= nums[i];
}
return result;
}
public static void Main(string[] args) {
int[] nums = new int[] { 300, 205, 90, 72, 15, 6 };
Console.WriteLine($"Result: {Mod(nums)}");
Console.ReadKey();
}
上面的代码将得到5,因此使用您需要的值执行您的数学运算,并查看答案是否符合您的预期。如果没有,请使用您的值和期望的答案更新您的问题。您是否使用此代码获得正确答案?您能否共享一些示例输入和预期输出?按集合的模数,您是指集合总和的模数吗?我不确定你希望得到什么结果。收藏的模数是多少?模数是除法后的余数。例如,11%3是2 11/3*3是9,11-9是2。我从未见过它与一对以上的数字一起使用。现在,我从未有过使用%=操作符的冲动;我觉得有点奇怪。你所做的就是在一个集合中穿行——天哪,我甚至不能描述你的代码是做什么的。你有一个你想要的结局的定义吗?在实际测试之前我问了这个问题,这是我的错。我得到了我想要的谢谢你抽出时间。