题目:统计数字问题:一本书的页码从自然数1开始顺序编码直到自然数n。书的页码按照通常的习惯编排,每个页码都不含多余的前导数字0。例如第6页用6表示而不是06或006。数字统计问题要求对给定书的总页码,计算出书的全部页码中分别用到多少次数字0,1,2,3,…9。
1.问题分析
可以将页数全部转化为长字符串,然后计算0到9每个字符串出现的次数
2. 问题建模
输入: n
输出:1:a次 2:b次 …9:c次
用0到9依次与每个字符对比相等则加一
3、算法源码
n = int(in = int(input()) #输入页数
numlist = list(range(1, n+1)) #数字列表
numlist = [str(i) for i in numlist] #转化成字符串
numlist1 = ''.join(numlist) # 结合成一个字符串
x=len(numlist1) #计算字符串的长度
i = 0
while i <= 9: # 0到9的数字
j = 0
m = 0
while j < x: #遍历每一个位置是否与0到9相同
if i == int(numlist1[j]):
m = m+1 #相同则加一
j = j+1
print("%d:" %i, m,"次",end= " ") #输出0到9出现的次数
i = i +1
4、测试数据
20
5、程序运行结果(要求:截图说明算法运行的结果)
关注公众号:Time木
更多大学课业实验实训可关注公众号回复相关关键词
学艺不精,若有错误还望指点