本帖最后由 永恒的蓝色梦想 于 2020-9-15 18:54 编辑
x=0
for i in range(1000):
if (i%3==0) or (i%5==0):
x=x+i
print (x)
答案233168
sum=0
for i in range(0,1000):
if i%3 == 0 or i%5 == 0:
sum += i
print('【3或5的倍数】:',i,' 【3 和 5 的倍数的数字之和】:',sum)
sum=0
n = 1
for i in range(0,1000):
if i%3 == 0 or i%5 == 0:
sum += i
print('【第',n,'个3或5的倍数:',i,'】','【3 和 5 的倍数的数字之和:',sum,'】')
else:
continue
n = n+1
print('3或5的倍数共',n,'个')
#include<stdio.h>
#include<stdlib.h>
int sum35(int N)
{
int i=0;
int sum=0;
for(i;i<N;i++)
{
if ((i%3==0)||((i%5)==0))
sum+=i;
}
return sum;
}
int main()
{
int sum=sum35(1000);
printf("sum=%d",sum);
getchar();
}
sum =0
for i in range(1,1000):
if( i % 3 == 0) or (i % 5 == 0):
sum += i
i += 1
print(sum)
if不用else可以吗?
无名侠 发表于 2015-7-8 17:53
sum()
怎么输出?
鸡汤不加盐 发表于 2015-12-22 00:05
def getSum():
sum = 0
for x in range (1,1000):
是不是没有输出啊
本帖最后由 张无忌 于 2016-5-1 21:30 编辑
def sum_multiples_3_and_5(max_num=1000):
m = (max_num - 1)//3
n = (max_num - 1)//5
l = (max_num - 1)//15
return (m**2 + m)//2*3 + (n**2 + n)//2*5 - (l**2 + l)//2*15
print(sum_multiples_3_and_5())
s = 0
for i in range(0,1000):
if (i%3 == 0) or (i%5 == 0):
s += i
print(s)
最后 s = 233168
sum = 0
number = 1000
for i in range(0,1000):
if i % 3 == 0 or i % 5 == 0:
sum = sum+i
print(sum)
>>> sum=0
>>> for i in range(0,1000):
if i%3 ==0 or i%5==0:
sum=sum+i
num = 0
list1 = range(1001)
for i in list1:
if (i % 3 == 0) or (i % 5 == 0):
num += i
print(num)
答案是234168,发现上面很多同学列表定义有误,range(1000)是不包含1000的,应该定义range(1001)
sum1=0
p=list(filter(lambda x: x%3==0 or x%5==0 , range(1,1000)) )
for i in p:
sum1+=i
print(sum1)
答案233168
如果num余3等于0,得出num,再来个num1,迭代个1000次就得了加起来
s=0
>>> for i in range(0,1000):
if i %3==0:
s+=i
continue
if i %5==0:
s+=i
each_sum = 0
for each in range(1001):
if ( each % 3 == 0 or each % 5 == 0 ):
each_sum += each
print(each_sum)
#include<stdio.h>
void main()
{
int x, sum = 0;
for (x = 0; x <= 1000; x++)
{
if ((x % 3 == 0) || (x % 5 == 0))
{
sum += x;
}
}
printf("sum = %d\n",sum);
}
233168
#include<cstdio>
void sum(int n){
long SUM=0;
for(int i=1;i<n;i++){
if(0==i%3 || 0==i%5)SUM+=i;
}
printf("%ld",SUM);
}
int main()
{
sum(1000);
return 0;
}
神人 发表于 2015-5-18 17:57
直接把数字拿出来算
这题传参为1000
感觉层主的方法应该是这道题的目的所在,枚举法很简单,直接列写公式就把计算机当成计算器。层主这个方法能降低复杂度。
nums=0
for i in range(1,1001):
if i%3==0 or i%5==0:
nums+=i
print(nums)
nums=0
for i in range(1,1001):
if i%3==0 or i%5==0:
nums+=i
print(nums)