python - 使用 5 的倍数作为变量更容易使用模数
问题描述
我对 Python 比较陌生,而且一般都在编码(第一学期,计算机科学入门,我不是计算机科学专业的学生。),而家庭作业让我试图弄清楚两个数字之间有多少个数字包含“ 5" (例如在 105 和 168 之间有 16 个包含 5 的数字。)我开始我的代码:
def give_me_five(start, end):
ctr = start
max = end
numberoffives = 0
while ctr <= end:
print (ctr)
if ctr % 5 == 0 and (ctr % 10 != 0):
elif ctr % 5 == 0 and (ctr % 10 == (somethingsomethingmultiplesof5)
numberoffives += 1
if ctr // 10 == 5:
numberoffives += 1
ctr += 1
return numberoffives
我遇到的问题是我不能用它来检查 50s、150s 等的数字...我尝试使用 ctr % 5 == 0 和 (ctr % 10 == ) 位尝试并包括它们,但现在我根本想不出办法,坦率地说,我觉得我把事情复杂化了。有人对如何使我的代码真正起作用有任何建议吗?
解决方案
如果我理解正确,我们想做:对于x
范围内的每个数字,检查它的任何数字digit
是否等于 5。
我们如何做到这一点?
我们可以做的一件事是转换 digit => 字符串,然后检查子字符串 '5' 是否存在。但这是一个幼稚的解决方案,需要更多的内存和时间将所有数字存储到一个字符串中(而不是表示现有 int 所需的几个字节)。
所以更聪明的方法是不断提取最低有效数字 ( digit = x % 10
),检查if digit == 5
,然后将最低有效数字除以重复 ( x //= 10 WHILE x > 0
)。
推荐阅读
- python - 检查多个目录中是否存在文件夹
- javascript - 不明白如何更新 React 钩子
- html - 如何将文本与标题图像对齐?
- python - 函数中间出现“Nonetype”错误(Python 3.6)
- mongodb - 在 MongoDB 中,我可以在每个分片上为 $lookup 创建非分片集合吗?
- html - Flexbox 间距/响应式
- python - TensorFlow:使用 weighted_categorical_column 时出错
- ios - Xcode:带有 UICollectionView 问题的 AutoLayout/Storyboard
- c++ - 尝试使用 ctime 计算函数的运行时间
- bootstrap-4 - 为什么这对小型手机没有响应?