|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
原帖子: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([i for i in range(1000) if i % 3 == 0 or i % 5 ==0]))
复制代码
加赛题:
找出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([i for i in range(1000) if i % 7 !=0 and '7' not in str(i)]))
复制代码
本次练习给出正确答案的鱼油是:
DingRan, 不爱穿内裤, Lnan95,wei_Y,VVFock3r,jy02214772,tomopad, zooo, debi999,落殇飞羽,swingman8
只给出正赛题正确答案的鱼油是:
天才宝宝, a1104201,doudou_freefish,天元,碗碗的泡菜坛,wangguohui,kio,夏天的凤,ajforfun
本期优秀的是Lnan95,zooo
|
评分
-
查看全部评分
|