问题描述
对于一个任意的三位自然数 x ,编程计算其各个数位上的数字之和 S 。
输入
输入一行,只有一个整数 x(100≤x≤999) 。
输出
输出只有一行,包括 1 个整数。
样例
输入
123
输出
6
以下是C++实现的代码:
代码1
#include <iostream>
using namespace std;
int main() {
int x;
cin >> x;
int unit = x % 10; // 个位数
int decade = (x / 10) % 10; // 十位数
int hundred = x / 100; // 百位数
int sum = unit + decade + hundred;
cout << sum << endl;
return 0;
}
该代码首先读入输入的三位自然数 x。
然后,我们使用取余运算符 %
取得 x 的个位数 unit = x % 10
。
接下来,我们使用整数除法 /
取得 x 的十位数 decade = (x / 10) % 10
,注意要在除以 10 之后再取余。
最后,我们使用整数除法 /
取得 x 的百位数 hundred = x / 100
。
最后,我们将个位数、十位数和百位数相加,得到各个数位上的数字之和 sum = unit + decade + hundred
,并输出结果。
这种方法通过取余和整数除法来得到个位数、十位数和百位数,并将它们相加得到数字之和。
代码2
#include <iostream>
using namespace std;
int main() {
int x;
cin >> x;
int sum = 0;
while (x > 0) {
int digit = x % 10;
sum += digit;
x /= 10;
}
cout << sum << endl;
return 0;
}
该代码首先读入输入的三位自然数 x。
然后,我们定义一个变量 sum 并初始化为 0,用于存储各个数位上的数字之和。
接下来,我们使用一个循环来计算各个数位上的数字之和。循环条件是 x 大于 0。
在循环内部,我们使用取余运算符 %
取得 x 的个位数 digit = x % 10
,并将其加到 sum 上。
然后,我们将 x 除以 10,即 x /= 10
,以便在下一次循环中处理下一个数位上的数字。
最后,我们输出 sum,即各个数位上的数字之和。
这种方法通过不断取余和整数除法来获取各个数位上的数字,并将其累加到 sum 上,直到 x 变为 0。