从键盘上输入n的值,计算100到n之间有多少个整数其各位数字之和是5,显示这些数,并统计个数。 提示 先从三位整数中分离出每一位数字,再求和判是否符合要求。
时间: 2023-05-01 08:03:37 浏览: 161
我们第一行包括两个整数n,k(1<=n<=100,k<=6e5),表示有n个数字,目标和为k 第二行输入n个整数(c1 c2
题目:从键盘上输入n的值,计算100到n之间有多少个整数其各位数字之和是5,并统计个数。
提示:先从三位整数中分离出每一位数字,再求和判断是否符合要求。
答案:
这道题可以分为两步:
1. 从100到n之间的数中挑选出各个位数字之和为5的数;
2. 统计符合条件的数的个数。
第一步我们可以把数字转换成字符串,然后遍历其中的每一位,把它们转换成整数值并累加起来,最后判断是否等于5即可。代码如下:
```python
def sum_of_digits(num):
"""
计算num的各个位数字之和
"""
digits_sum = 0
while num:
digits_sum += num % 10
num //= 10
return digits_sum
n = int(input())
count = 0
for num in range(100, n+1):
if sum_of_digits(num) == 5:
count += 1
print(count)
```
第二步,我们可以用一个变量count来记录符合要求的数的个数,每当找到一个,就把count加1。最后输出count即可。
如果题目要求的是实现一个函数,那么我们可以把上面的代码抽象成一个函数,代码如下:
```python
def count_numbers(n):
"""
计算100到n之间有多少个整数其各位数字之和是5
"""
def sum_of_digits(num):
"""
计算num的各个位数字之和
"""
digits_sum = 0
while num:
digits_sum += num % 10
num //= 10
return digits_sum
count = 0
for num in range(100, n+1):
if sum_of_digits(num) == 5:
count += 1
return count
```
阅读全文