基础算法003-----数字统计问题

统计数字问题:
一本书的页码从自然数1开始顺序编码直到自然数n。书的页码按照通常的习惯编排,每个页码都不含多余的前导数字0。数字计数问题要求对给定书的总页码n, 计算出书的全部页码中分别用到多少次数字0,1 ,2,...,9。

要求:
输入格式:
输入只有1行,给出表示书的总页码整数n。

输出格式:
输出共有10行, 在第k行输出页码中用到的数字k-1的次数,k= 1, 2, ... ,10

输入样例:
11

输出样例:
1
4
1
1
1
1
1
1
1
1

解法如下:

num = int( input('请输入页码:') )  #如果在PTA中,不能有中文,且输入不能这么写,PTA中的输入格式如下:
'''
a = input()
num = int(a)
'''
page_list = []    #存放输入的页码分散成的数字               
num_list = []     #存放各个数字出现的次数
for i in range(1,num+1):
	page_list.append(i)                 #分散页数,将数字存入列表
page_list= str(page_list)             #将列表字符串化,以便统计各个数字出现次数

for x in range(0,10):
	num_list.append(page_list.count(str(x)))    #用count方法统计已经字符化的数字出现的次数,并统计到num_list中

for result in num_list:                     #将统计好的数字输出
	print(result)

实际上,上面的方法并没有用到什么算法的思想,为了简单,笔者直接用count()函数对转化为字符串的列表进行了数字统计。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值