Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#通过一个整数并将每个字符相加到一个和_C# - Fatal编程技术网

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