我又来啦,请大家帮忙
问题是这样的:就是快速求一个数字,这个数字是一个6位数,以85开头,最后两位数字相同,并且这个6位数能同时被13和33整除,求这个六位数。如果程序这样(很笨,不要笑话我{:9_240:} ):
for i in range(850000,859999):
if i %13==0 and i%33==0:
print(i)
得出好多六位数:
850278
850707
851136
851565
851994
852423
852852
853281
853710
854139
854568
854997
855426
855855
856284
856713
857142
857571
858000
858429
858858
859287
859716
可以看到其中858000和855855是符合题目要求的。
但是我把程序写具体点:
for i in range(850000,859999):
if i %13==0 and i%33==0:
a = i%10
b = i%100/10
if a==b:
print(i)
得出的结果就只有一个数字:858000
不知道问题出在哪里了?所以只能来求助啦!先谢过
你取数字倒数第二位的方法不对
for i in range(850000, 860000):
if i % 13 == 0 and i % 33 == 0:
a = i % 10
b = i // 10 % 10
if a == b:
print(i)
改过来就好了 本帖最后由 昨非 于 2021-2-7 21:12 编辑
因为b = i%100/10的除法/得到的是float型的数,
强制转换为整型恰好是你想要的倒数第二位数
for i in range(850000,859999):
if i %13==0 and i%33==0:
a = i%10
b = int(i%100/10)#转为int就好了
if a==b:
print(i)
测试:
855855
858000 你们都秒回啊,感谢感谢,脑子真的不够用啊,经常处于一筹莫展的状态 kittenpuppy 发表于 2021-2-7 21:12
你们都秒回啊,感谢感谢,脑子真的不够用啊,经常处于一筹莫展的状态
{:10_266:}还是慢了 for i in range(850000, 859999):
if i % 13 == 0 and i % 33 == 0:
a = i % 10
b = i % 100 // 10
if a == b:
print(i)
a / b 除不尽的话返回的是浮点数, a // b 地板除才会返回整数部分 本帖最后由 kittenpuppy 于 2021-2-7 21:24 编辑
谢谢上面的三位朋友,手动献花 kittenpuppy 发表于 2021-2-7 21:17
谢谢上面的两位朋友,手动献花
没有最佳也可以点击右下角的【评分】
加个荣誉贡献啥的,也算对我们的鼓励哟{:10_278:} 昨非 发表于 2021-2-7 21:19
没有最佳也可以点击右下角的【评分】
加个荣誉贡献啥的,也算对我们的鼓励哟
好咧,不熟悉论坛,现在已经评分啦 kittenpuppy 发表于 2021-2-7 21:24
好咧,不熟悉论坛,现在已经评分啦
没事的,有问题随便问
慢慢就熟悉啦{:10_297:}
页:
[1]