用python怎么做.从1到n整数中1的个数 类型: 字符串 描述 输入一个正整数n,求出1~n的整数中1出现的次数, 求出任意非负整数区间中1出现的次数(从1到n中1出现的次数) 输入格式 输入一个正整数n 输出格式 输出1的个数
时间: 2024-02-09 08:08:02 浏览: 214
给定一个十进制正整数N,程序输出从1到N的所有整数中,“1”出现的个数。DMU
5星 · 资源好评率100%
可以通过遍历1到n的每一个数字,然后将数字转换为字符串,再遍历字符串中的每一位,判断是否为'1',如果是则计数器+1。最后返回计数器的值即可。
以下是代码实现:
```python
def count_one(n):
count = 0
for i in range(1, n + 1):
str_i = str(i)
for char in str_i:
if char == '1':
count += 1
return count
```
如果要求任意非负整数区间中1出现的次数,可以将上述代码稍作修改,通过传入区间的起始和结束数字,只遍历该区间内的数字即可。
```python
def count_one_range(start, end):
count = 0
for i in range(start, end + 1):
str_i = str(i)
for char in str_i:
if char == '1':
count += 1
return count
```
需要注意的是,这种方法在遍历每个数字的每一位时,时间复杂度是O(d*n),其中d是数字的位数,n是数字的数量。因此,当数字很大时,这种方法可能会超时。在这种情况下,可以考虑其他更高效的算法,比如数位DP等。
阅读全文