小练习结果揭晓: 找出1000以下自然数中3和5的倍数之和
原帖子:http://bbs.fishc.com/thread-69263-1-1.html题目:
10 以下的自然数中,属于 3 和 5 的倍数的有 3, 5, 6 和 9,它们之和是 23
找出 1000 以下(不包括1000)的自然数中,属于 3 和 5 的倍数的数字之和
本题欧拉给出的参考答案的伪代码如下:
target=999
sum=0
for i=1 to target do
if (i mod 3=0) or (i mod 5)=0 then sum:=sum+i
output sum
如果换成python写,应该是这样的:
sum1 = 0 #变量名改为sum1避免与sum函数重名
for i in range(1, 1000):
if i % 3 == 0 or i % 5 == 0:
sum1 += i
print(sum1)
这道题用列表推导式,写一行语句就可以完成。即将这些数字生成一个列表,再求和。
print(sum())
加赛题:
找出1000以下(不包括1000)自然数中不含7的倍数且每位数字中均不含7的数之和。
同理,加赛题的参考答案如下:
def contain7(n): #判定数字中是否含有7
while n:
n, i = divmod(n, 10)
if i == 7:
return True
return False
sum1 = 0
for i in range(1000):
if i % 7 != 0 and not contain7(i):
sum1 += i
print(sum1)
单行程序:
print(sum())
static/image/hrline/5.gif
本次练习给出正确答案的鱼油是:
DingRan, 不爱穿内裤, Lnan95,wei_Y,VVFock3r,jy02214772,tomopad, zooo, debi999,落殇飞羽,swingman8
只给出正赛题正确答案的鱼油是:
天才宝宝, a1104201,doudou_freefish,天元,碗碗的泡菜坛,wangguohui,kio,夏天的凤,ajforfun
本期优秀的是Lnan95,zooo
{:10_254:} 支持~可惜赶不上这一期了,只能搭乘下一期的小练习~~ 好久没来看了~~支持一下~ 你好请教,求0到1000,每位数字中均不含7的数时,我用如下代码为啥没有返回值:
for i in range(0,15):
if '7' in str(i)==False:
print(i)
这样改一下,注意运算的优先级。
for i in range(0,15):
if ('7' in str(i))==False:
print(i) 比较正规的写法:
for i in range(0,15):
if '7'not in str(i):
print(i) 有我,哈哈哈哈哈哈哈哈 {:10_256:}{:10_256:}{:10_256:}{:10_256:} 棒 答案不是266333吗?
页:
[1]