shirleytse
发表于 2018-9-13 16:36:02
i = 1
sum = 0
while i <= 1000:
if i%3 == 0 or i%5 == 0:
sum += i
i+=1
print(sum)
StephenShi
发表于 2018-9-15 22:57:08
从没考虑过算法速度的我。
ls = []
for i in range(1,1001):
if i % 3 == 0 or i % 5 == 0:
ls.append(i)
print(sum(ls))
>>>234168
StephenShi
发表于 2018-9-15 22:59:41
StephenShi 发表于 2018-9-15 22:57
从没考虑过算法速度的我。
>>>234168
好像还做错了。1000以下{:10_278:}
yuc_mi
发表于 2018-9-17 15:20:32
print("找出 1000 以下的自然数中,属于 3 或 5 的倍数的数字之和")
def getsum(n):
sum = 0
for i in range(0,n):
if i % 3 and i % 5:
continue
else:
sum += i
return sum
n = int(input('请输入一个自然数:'))
result = getsum(n)
print(result)
山有扶苏啊
发表于 2018-9-30 12:25:24
答案233168
mul = []
t = 0
for i in range(1000):
if i % 5 == 0:
mul.append(i)
for j in range(1000):
if j % 3 == 0 and j not in mul:
mul.append(j)
for k in range(0, len(mul)):
t += mul
print(t)
shanczp
发表于 2018-10-9 18:32:35
输出结果233168
int main(void)
{
int sum=0;
for (int i = 0; i <1000; i++)
{
if(i%3==0||i%5==0)
{
sum+=i;
}
}
printf("%d",sum);
system("pause");
return 0;
}
比特阿尔法
发表于 2018-11-1 00:45:34
#include <stdio.h>
int main()
{
int i=3;
int j=5;
int temp1=0;
int temp2=0;
int temp3=0;
float sum=0;
temp1=1000/3;
temp2=1000/5;
temp3=1000/15;
sum=(3+temp1)*(temp1/3)*0.5+(5+temp2)*(temp2/5)*0.5;
temp3=(15+temp3)*(temp3/15)*0.5;
sum-=temp3;
printf("%f",sum);
return 0;
}
算法复杂度 O(1)
运行结果为:22586
AndreaPWJ
发表于 2018-11-10 13:37:25
请问这个系列的题目会不会公布答案?还是要自己上其他地方查找资料?
因为看到下面的鱼油们答案各不相同,如果没有最后的比较值得参考的范本,个人感觉效果会打很大折扣呢。。
cupbbboom
发表于 2018-11-11 13:08:24
所以答案究竟是多少?我算的234168肯定是不对了,3和5 的公倍数我只加了一遍,题目是3倍数 + 5倍数,我少加了一个公倍数,果然不能看着字数少就少想些,不然肯定会丢数字,唉{:5_104:}
cupbbboom
发表于 2018-11-11 13:10:10
AndreaPWJ 发表于 2018-11-10 13:37
请问这个系列的题目会不会公布答案?还是要自己上其他地方查找资料?
因为看到下面的鱼油们答案各不相同 ...
主要审题没到位,看我答案就晓得了,自己可以再算遍
小屁孩2
发表于 2018-11-12 19:36:56
#include<stdio.h>
int main()
{
int a,s=0;
for(a=0;a<1000&&a>=0;a++)
{
if(a%3==0||a%5==0)
s+=a;
}
printf("%d",s);
return 0;
}
cclovepython
发表于 2018-11-24 14:36:10
sum()
11TEN
发表于 2018-11-24 14:39:17
#include<stdio.h>
int main(void)
{
int i,s=0;
for(i=1;i<=1000;i++)
{
if(i%3==0||i%5==0)
{
s+=i;
}
}
printf("%d",s);
}
233168
Stubborn
发表于 2018-12-6 03:09:11
本帖最后由 Stubborn 于 2018-12-6 03:11 编辑
list=[]
for i in range(3,1000):
if i%3 == 0 or i%5 == 0:
list.append(i)
else:
continue
print(sum(list))
sum(i for i in range(3,1000) if i%3 == 0 or i%5 == 0)
233168
python6
发表于 2018-12-18 21:02:50
翅膀团 发表于 2015-6-29 15:19
我的答案是233168。
C语言:
#include
234168 因为还有一个1000
PYthofreeze
发表于 2018-12-19 18:08:52
sum = 0
for i in range(1000):
if i%3==0 and i%5==0
sum += i
黑色的小白
发表于 2019-1-7 19:26:45
def sum_(num):
ret = 0
for i in range(num):
if i % 5 == 0 or i % 3 == 0:
ret += i
# print(i)
return ret
print(sum_(int(1001))) # ret = 234168
爱学习的喵
发表于 2019-1-8 16:04:55
def fun1(num):
return (6+(num//3-1)*3)*(num//3)//2 + (10+(num//5-1)*5)*(num//5)//2 - (30+(num//15-1)*15)*(num//15)//2
print(fun1(1000))
xzak888
发表于 2019-1-14 17:27:18
num=[]
for i in range(1000):
if i%3==0 or i%5==0:
num.append(i)
print(sum(num))
用for循环遍历,这样也不会重复计入15的倍数
gy1997
发表于 2019-1-24 16:57:30
1
页:
1
2
3
4
5
6
7
[8]
9
10
11
12
13
14