入门 · 拆位

数位和

求一个整数的数位之和:1234 → 1+2+3+4 = 10。和数位数同一个拆位循环,这次改成累加。

题目

输入:一个整数 n(−10⁹ ≤ n ≤ 10⁹)。

输出:它的数位之和(负号不算)。

样例:

输入输出
123410
-3058

你的解答

Program.cs — 你的解答
"用我的输入试跑"的自定义输入

判题完全在你的浏览器里对隐藏测试运行。代码随打随存(本地)。Ctrl+Enter 判题。

卡住了?提示

提示 1 —— 拆下来加起来

每一轮:sum += n % 10; 取末位,n = n / 10; 去掉它。循环到零为止。

提示 2 —— 两个坑

负数输入用 n > 0 会死循环——先 Math.Abs(n)。而 n = 0 应打印 0(do-while 白送)。

解答(先自己试!)
int n = Math.Abs(int.Parse(Console.ReadLine()));
int sum = 0;
do { sum += n % 10; n = n / 10; } while (n > 0);
Console.WriteLine(sum);

同一个循环,不同的折法——计数换成了求和。第 4 课的累加器模式在干活。下一题:闰年。