c#通过一个整数并将每个字符相加到一个和
我知道代码的作用,但有人能解释一下它是如何工作的吗?c#通过一个整数并将每个字符相加到一个和,c#,C#,我知道代码的作用,但有人能解释一下它是如何工作的吗?%10返回整数的模10(除以10后的余数),因此这基本上是最后一个十进制数字 /=10除以10。因为它是一个整数除法,逗号后面的部分被截断,所以这基本上删除了最后一个数字 因此,对于数字123,这种情况会发生 while (sum != 0) { n += sum % 10; sum /= 10; } 因此,sum是个坏名字,因为它实际上是包含输入并被处理的变量n实际上是包含总和的变量。您应该将n初始化为0,并将sum初始化为
%10
返回整数的模10(除以10后的余数),因此这基本上是最后一个十进制数字
/=10
除以10。因为它是一个整数除法,逗号后面的部分被截断,所以这基本上删除了最后一个数字
因此,对于数字123,这种情况会发生
while (sum != 0)
{
n += sum % 10;
sum /= 10;
}
因此,
sum
是个坏名字,因为它实际上是包含输入并被处理的变量n
实际上是包含总和的变量。您应该将n
初始化为0,并将sum
初始化为输入整数,以使其正常工作。因此,这是一个计算整数中所有数字之和的程序
工作原理:
它获取数字/10的剩余部分,并将其迭代添加到初始化为0的变量中
步骤顺序:
假设sum=2155,n=0
在第一次迭代中
n = n + 3;
sum = 123 / 10 = 12;
n = n + 2;
sum = 12 / 10 = 1;
n = n + 1;
这种情况反复发生,直到sum的值变为0,n的值为2+1+5+5=13
希望这有帮助。整数除法截断。谢谢,这很有帮助@Zaycn不客气!
n += sum % 10; //Here, n = n+ sum % 10. So, n will be evauated to 5 since, 2155 % 10 = 5
sum /= 10; // Here, sum = sum / 10, since sum is an integer, the value of sum will now be 2155 / 10 = 215