关注
我严重怀疑这代码不是你自己写的,因为感觉你自己都不知道这个代码在干什么事情,注释都错了 不懂请不要装懂误导别人 这个代码的核心思想就是找出各个位数上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
相关推荐
2025-12-15 11:27
门头沟学院 Java 点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 为了入行xx岗,我学了__ #
8169次浏览 120人参与
# 工作压力大怎么缓解 #
131795次浏览 1132人参与
# 简历第一个项目做什么 #
9375次浏览 134人参与
# 运营面经 #
151722次浏览 1334人参与
# 参加哪些竞赛对找工作有帮助? #
10294次浏览 156人参与
# 被说“做题家”,你的反应是_____? #
3639次浏览 114人参与
# 打工人锐评公司红黑榜 #
190422次浏览 1047人参与
# 你都见过什么样的草台班子? #
12314次浏览 91人参与
# Prompt分享 #
4014次浏览 106人参与
# AI了,我在打一种很新的工 #
128604次浏览 1316人参与
# 我心目中的理想工作是这样的 #
92745次浏览 901人参与
# 担心入职之后被发现很菜怎么办 #
275252次浏览 1174人参与
# 找实习记录 #
45656次浏览 626人参与
# AI让你的思考变深了还是变浅了? #
6690次浏览 166人参与
# 工作压力大,你会干什么? #
16436次浏览 406人参与
# AI“智障”时刻 #
21583次浏览 113人参与
# 辞职之后最想做的一件事 #
31061次浏览 250人参与
# 如果不上班,你会去做什么 #
9185次浏览 308人参与
# 金融财会交流会 #
130732次浏览 445人参与
# 金融财经春招备战日记 #
47498次浏览 221人参与
查看1道真题和解析