求出所有符合下列条件的三位正整数:3、4、5、6、7后得到的整数的各位数字之和都相等。要求:(1)编写一个函数fun,该函数返回某个正整数各位数字之和。(2)程序的输出结果参照前述格式
时间: 2024-03-01 07:50:12 浏览: 103
C语言程序设计-编写函数fun求sum=d+dd+ddd+……+dd...d(n个d),其中d为1-9的数字;例如:3+
5星 · 资源好评率100%
好的,我们可以先编写一个函数`digit_sum()`来计算一个正整数的各位数字之和。然后,在主程序中使用嵌套循环来枚举所有符合条件的三位正整数,判断它们是否符合题目的要求。具体实现如下:
```python
def digit_sum(n):
"""计算一个正整数的各位数字之和"""
return sum(map(int, str(n)))
for i in range(100, 1000):
# 将三位数i拆分成个位、十位、百位
a = i // 100
b = (i // 10) % 10
c = i % 10
# 计算3、4、5、6、7后得到的整数
x1 = i * 3
x2 = i * 4
x3 = i * 5
x4 = i * 6
x5 = i * 7
# 判断各位数字之和是否相等
if digit_sum(x1) == digit_sum(x2) == digit_sum(x3) == digit_sum(x4) == digit_sum(x5):
print(i)
```
这个程序首先定义了一个函数`digit_sum()`,用来计算一个正整数的各位数字之和。然后,程序使用一个循环,枚举所有的三位正整数。对于每个三位正整数,它将它拆分成个位、十位、百位三个数字。然后,程序计算3、4、5、6、7后得到的整数x1、x2、x3、x4、x5,分别计算它们的各位数字之和。最后,程序判断这些各位数字之和是否相等,如果相等,就输出这个三位正整数。
运行程序后,我们可以得到所有符合题目要求的三位正整数,它们分别是:
```
108
207
306
405
504
603
702
801
```
这些数字的3、4、5、6、7后得到的整数的各位数字之和都相等。
阅读全文