编写一个程序,计算任何一个输入的正整数的各位数字之和,比如输入36104,输出结果为3+6+1+0+4=14。定义子函数并用main函数调用。
时间: 2023-04-16 14:05:04 浏览: 100
以下是一个计算任何一个输入的正整数的各位数字之和的程序,其中定义了一个子函数sumDigits,用于计算各位数字之和,然后在main函数中调用该函数:
```c++
#include <iostream>
using namespace std;
int sumDigits(int n) {
int sum = ;
while (n > ) {
sum += n % 10;
n /= 10;
}
return sum;
}
int main() {
int n;
cout << "请输入一个正整数:";
cin >> n;
cout << n << "的各位数字之和为:" << sumDigits(n) << endl;
return ;
}
```
程序的运行结果如下:
```
请输入一个正整数:36104
36104的各位数字之和为:14
```
相关问题
从键盘输入一个三位正整数num,依次计算其百、十、个位的数字,判断该正整数是否为一个水仙花数(水仙花数是一个三位数,该数字正好等于其各位数字的立方和,比如:153=13+53+33),输出判断结果。
首先,我们需要编写一段程序来接收用户输入的三位正整数 `num`。然后我们将这个数字分解成百位 (`num // 100`)、十位 (`num % 100 // 10`) 和个位 (`num % 10`)。接下来,我们计算这三个数字分别立方后的总和,并将其与原数 `num` 进行比较。如果相等,那么 `num` 就是一个水仙花数;如果不等,则不是。
以下是 Python 语言的一个示例代码片段:
```python
def is_water_lily(num):
# 分解数字
hundreds = num // 100
tens = (num % 100) // 10
ones = num % 10
# 计算每个位的立方和
sum_of_cubes = hundreds**3 + tens**3 + ones**3
# 判断是否为水仙花数
return sum_of_cubes == num
# 接收用户输入
num = int(input("请输入一个三位正整数:"))
# 判断并输出结果
if is_water_lily(num):
print(f"{num} 是一个水仙花数")
else:
print(f"{num} 不是一个水仙花数")
输出水仙花数。输入一个正整数n(3≤n≤7),输出所有的n位水仙花数。水仙花数是指一个n位正整数,它的各位数字的n次幂之和等于它本身。例如153的各位数字的立方和是1’+5’+3'=153。试编写相应程序。
为了编写一个输出n位水仙花数的简单程序,我们可以使用循环遍历从3位到n位的所有数字,并检查每个数字是否满足水仙花的条件。这里以Python为例:
```python
def find_water_lilies(n):
for num in range(10**(n-1), 10**n): # 生成n位数范围内的所有数
digits = [int(digit) for digit in str(num)] # 获取每一位数字
sum_of_powers = sum([digit ** n for digit in digits]) # 计算每位立方和
if sum_of_powers == num: # 如果和等于原数,则找到水仙花数
print(num)
# 输入想要查找几位数的水仙花数
n = int(input("请输入一个正整数n (3 ≤ n ≤ 7): "))
find_water_lilies(n)
```
当你运行这个程序并输入合适的n值(比如3、4、5等),它会输出对应位数的水仙花数。
阅读全文