-5 c#
我不明白这个程序是如何工作的,如果将原始总和设置为0,则将其r(remainder)添加到总和中0.这两位数的正确总和怎么样?我觉得它应该像这样......sum = num + r;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Application
{
class MainClass
{
public static void Main (string[] args)
{
int num, sum = 0, r;
Console.WriteLine("Enter a Number : ");
num = int.Parse(Console.ReadLine());
while (num != 0)
{
r = num % 10;
num = num / 10;
**sum = sum + r;**
}
Console.WriteLine("Sum of Digits of the Number : "+sum);
Console.ReadLine();
}
}
}
Run Code Online (Sandbox Code Playgroud)
不要忘记它是在循环中.sum第一次迭代时为0,但在第二次迭代时,它包含最后一位数的值.
所以想象你有一些195692.它会经历7次迭代:
num sum (before) r sum (after)
195692 0 2 2
19569 2 9 11
1956 11 6 17
195 17 5 22
19 22 9 31
1 31 1 32
Run Code Online (Sandbox Code Playgroud)
所以结果是32,即1 + 9 + 5 + 6 + 9 + 2.
请注意,您可以通过在代码中添加一些诊断线来自己生成该表...或者您可以通过调试代码来查看它是如何工作的"直播",从而在笔和纸上生成它.
如果你有sum = r + num,那么将最后一位数字加到将数字除以10的结果上......并完全忽略前一个总和.