关注
我严重怀疑这代码不是你自己写的,因为感觉你自己都不知道这个代码在干什么事情,注释都错了 不懂请不要装懂误导别人 这个代码的核心思想就是找出各个位数上1的个数,和辗转相除一点关系都没有 重新注释了一下,有兴趣的就看看吧 def NumberOf1Between1AndN_Solution(n):
temp = n
res = 0
base = 1 # 应该是指位数,1表示个位,10表示十位....
while temp:
p = temp % 10 # 取出当前位
temp = temp // 10
res += temp * base # temp * base得到该位的出现次数
if p == 1:
# 如果这个位数是1,那么还要算上这个位数1出现的次数
# 举例: 1141的百位
# 上面temp * base即1 * 100算出的是1000前百位为1的个数,1100到1141百位上的1没统计到,因此最终结果还要加上42个
res += n % base + 1
elif p > 1:
# 如果这个位数大于1,那么这个位数的1还出现了base次
# 举例: 1141的十位
# 上面temp * base即11 * 10算出的是1100前十位为1的个数,1100后还有10个没统计到
res += base
base *= 10
return res
12
相关推荐
点赞 评论 收藏
分享
03-03 23:42
复旦大学 Java 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 烂工作和没工作哪个更痛苦? #
5175次浏览 91人参与
# 如何提高实习转正率? #
98324次浏览 550人参与
# 厦门银行科技岗值不值得投 #
16937次浏览 406人参与
# AI替代不了什么? #
4688次浏览 68人参与
# 重来一次,我还会选择这个专业吗 #
443598次浏览 3935人参与
# 给工作过的公司写一条大众点评,你会怎么写? #
2286次浏览 33人参与
# 春招至今,你收到几个面试了? #
8631次浏览 141人参与
# 学历VS实习,哪个更重要? #
15849次浏览 213人参与
# 银行笔面经互助 #
189777次浏览 1311人参与
# 现在入门AI首先要做什么? #
1063次浏览 34人参与
# 职场吐槽大会 #
344684次浏览 2275人参与
# Agent面试会问什么? #
3669次浏览 88人参与
# 一人分享一个skill #
782次浏览 23人参与
# 机械人,你的秋招第一份简历被谁挂了 #
260856次浏览 2435人参与
# 2023届毁约公司名单 #
253158次浏览 1072人参与
# 月薪多少能在一线城市生存 #
148915次浏览 908人参与
# 总结:offer选择,我是怎么选的 #
280045次浏览 1546人参与
# 你做过哪些dirty work #
32131次浏览 162人参与
# 一人分享一道面试手撕题 #
116063次浏览 2964人参与
# 发工资后,你做的第一件事是什么 #
101035次浏览 343人参与
# 工作上你捅过哪些篓子? #
69527次浏览 337人参与
查看15道真题和解析