python--求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数)。

这篇博客探讨了如何用Python计算从1到n中1出现的次数。通过分析个位、十位、百位等的规律,得出每个位上1出现的次数。总结了通用公式来计算任意位数上1的出现次数,并提供了实现代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

思路:分别计算个位出现1的次数,十位出现1的次数,百位出现1的次数…

  1. 个位数出现1的次数
    找规律发现1,11,21,31…,个位数1每隔10次出现一次,初步猜测为n/10。但是需要注意当n%10>=1的时候,出现次数为n/10+1,而当n%10<1的时候,出现次数为n/10。
    故个位数出现1的次数为:
    if n%10<1: s=n/10
    else: s=n/10+1
  2. 十位数出现1的次数
    找规律发现10,11,12,…,19,110,111,112,…,119,十位数1每隔100次出现10次,初步猜测为[n/100]*10。但是需要注意的是
    当n%100>19的时候,出现次数为[n/100]*10+10;
    当n%100<10的时候,出现次数为n/100;
    当10<=n%100<=19的时候,出现次数为[n/100]*10+n%10+1
  3. 百位数出现1的次数
    找规律发现100,101,…,199,1100,1101,…,1199,百位数1每隔1000次出现100次,初步猜测为[n/1000]*100。但是需要注意的是:
    当n%1000>199时,出现次数为[n/1000]*100+100;
    当n%1000<100时,出现次数为[n/1000]*100;
    当100&l
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值