题目1:找出1000以下自然数中3和5的倍数之和
本帖最后由 不二如是 于 2017-6-17 22:13 编辑Multiples of 3 and 5
If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.
Find the sum of all the multiples of 3 or 5 below 1000.
题目:
10 以下的自然数中,属于 3 或 5 的倍数的有 3, 5, 6 和 9,它们之和是 23。
找出 1000 以下的自然数中,属于 3 或 5 的倍数的数字之和。
我的结果是233168!哈哈哈哈哈 本帖最后由 永恒的蓝色梦想 于 2020-9-15 18:51 编辑
把代码贴一下,看看对不对,哪位大婶有牛鼻的,希望不吝赐教阿!sum=0
for i in range(0,1000):
if i%3==0 or i%5==0:
sum=sum+i
i=i+1
else:
i=i+1
print(sum) 本帖最后由 瞬秒爆加速 于 2015-4-26 11:19 编辑
def pl(x):
s=[]
for i in range(x):
if i % 3 ==0 or i % 5 ==0:
s.append(i)
else:
return sum(s)
def pl(x):
return sum()
>>> s3 =
>>> s5 =
>>> sum(s3)+sum(s5) 本帖最后由 永恒的蓝色梦想 于 2020-9-15 18:51 编辑
s5 = long theSum(int maxNum)
{
int i;
long sum = 0;
for (i = 3; i < maxNum; i += 3)
{
sum += i;
}
for (i = 5; i < maxNum; i += 5)
{
sum += i;
}
for (i = 15; i < maxNum; i += 15)
{
sum -= i;
}
return sum;
}
直接把数字拿出来算
这题传参为1000 那答案是多少啊,算出来是4432504 # include<stdio.h>
int main()
{
int i=0,total;
while (i<1000)
{
if(i%5==0)
{
total+=i;
}
else if(i%3==0)
{
total+=i;
}
i++;
}
printf("%d\n",total);
return 0;
} 本帖最后由 永恒的蓝色梦想 于 2020-9-15 18:53 编辑
我的答案是233168。
C语言:#include <stdio.h>
int main(void)
{
int i,result = 0;
for(i=0;i<1000;i++)
{
if(i % 3 == 0 || i % 5 == 0)
{
result += i;
}
}
printf("%d\n",result);
}如果有错误希望指出 HALLDY 发表于 2015-6-26 00:28
total 没有清零 本帖最后由 永恒的蓝色梦想 于 2020-9-15 18:53 编辑
sum() HALLDY 发表于 2015-6-26 00:28
错了,有的数同时是3和5的倍数。
比如 15 #include<stdio.h>
void main()
{
int i, j;
i = 3;
j = 0;
while(i <1000)/*算出所有3的倍数的和*/
{
j += i;
i += 3;
}
i = 5;
while(i < 1000) /*算出所有5的倍数的和*/
{
j += i;
i += 5;
}
i = 15;
while(i<1000)/*减掉3的倍数5的倍数重复的也就是15的倍数的和*/
{
j -= i;
i += 15;
}
printf("sum = %d",j);
} def sum(frm,to):
result=0
for i in range(frm,to):
if i%3==0 or i%5==0:
result+=i
return result
print(sum(0,1000))
本帖最后由 永恒的蓝色梦想 于 2020-9-15 18:53 编辑
Number_list = range(0,1000)
sum1 = 0
for number in Number_list:
if (number % 3 == 0 ) or (number % 5 ==0):
sum1 += number
print('1000以下的3或5的倍数的自然数之和是:<%d>'%sum1)
===========================================
结果:
1000以下的3或5的倍数的自然数之和是:<233168>
===========================================
感觉想得比较简单,代码有点多! int sum, sum1, sum2, sum3, a, b, c;
a = 999 / 3;
b = 999 / 5;
c = 999 / 15;
sum1 = (3 + 3 * a ) * a / 2;//1000以下自然数中3的倍数之和
sum2 = (5 + 5 * b ) * b / 2;//1000以下自然数中5的倍数之和
sum3 = (15 + 15 * c) * c / 2; //1000以下自然数中3和5最小公倍数的倍数之和
sum = sum1 + sum2 - sum3; #include <stdio.h>
int main()
{
int i,sum=0;//i为1-1000的数字 sum为所求和
for(i = 1;i < 1000;i ++)
{
if(i % 15 == 0) //先找出同时被3和5整除的数
{
sum += i;//把次数加入和中
continue;
}
else if(i % 3 == 0)//把3的倍数找出
{
sum += i;
continue;
}
else if(i % 5 == 0)//把5的倍数找出
{
sum += i;
continue;
}
}
printf("所求之和为%d\n",sum);
return 0;
}
答案233168 本帖最后由 鸡汤不加盐 于 2015-12-22 00:29 编辑
def getSum():
sum = 0
for x in range (1,1000):
if x % 3 == 0 or x % 5 == 0:
sum += x
return sum
新手 ,连门都没入,到quora 上抄了一个,结果人家说出来233168,为什么我出来SHELL 里出来的是 空白? 谁能告诉我吗? 谢谢
我的思路是
首先定义范围1-1000
其次定义 数据类型 整数
再次 能被3,,5相除的整数
再次求和
中间确实可能出现像别的朋友说的那样同时被3 和5 相除的数字,那就要强制每个数字只执行一次?
不过目前我还不会写,抄别人的到是看的懂。{:5_97:} #python 2.7.11
sum(num for num in range(1,1000) if num%3 == 0 or num%5 ==0)