白衣君 发表于 2016-2-29 09:20:08

本帖最后由 永恒的蓝色梦想 于 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

小飞鱼oo 发表于 2016-2-29 14:30:00

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)

小飞鱼oo 发表于 2016-2-29 14:57:28

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,'个')

ianv 发表于 2016-3-14 19:11:57

#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();
}

weilixueba 发表于 2016-4-17 17:58:42

sum =0
for i in range(1,1000):
    if( i % 3 == 0) or (i % 5 == 0):
      sum += i
    i += 1
print(sum)

if不用else可以吗?

weilixueba 发表于 2016-4-17 18:01:16

无名侠 发表于 2015-7-8 17:53
sum()

怎么输出?

weilixueba 发表于 2016-4-17 18:02:49

鸡汤不加盐 发表于 2015-12-22 00:05
def getSum():
    sum = 0
    for x in range (1,1000):


是不是没有输出啊

张无忌 发表于 2016-5-1 21:29:29

本帖最后由 张无忌 于 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())

EggyBruch 发表于 2016-5-2 09:16:14

s = 0
for i in range(0,1000):
    if (i%3 == 0) or (i%5 == 0):
      s += i
print(s)


最后 s = 233168

Liu_xy 发表于 2016-5-2 21:36:23

sum = 0
number = 1000
for i in range(0,1000):
    if i % 3 == 0 or i % 5 == 0:
      sum = sum+i
print(sum)

y9sgod 发表于 2016-5-16 14:42:30

>>> sum=0
>>> for i in range(0,1000):
        if i%3 ==0 or i%5==0:
                sum=sum+i

兔小兔Dad 发表于 2016-6-7 14:47:44

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)

huomqh 发表于 2016-6-13 11:20:01

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

neilyoone 发表于 2016-6-14 23:46:16

如果num余3等于0,得出num,再来个num1,迭代个1000次就得了加起来

冷钟天 发表于 2016-7-2 19:16:46

s=0
>>> for i in range(0,1000):
        if i %3==0:
                s+=i
                continue
        if i %5==0:
                s+=i

幻世伽蓝 发表于 2016-7-3 16:19:44

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);
}

DAY 发表于 2016-7-11 10:19:15

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;
}

557Yu 发表于 2016-7-18 15:15:24

神人 发表于 2015-5-18 17:57
直接把数字拿出来算
这题传参为1000

感觉层主的方法应该是这道题的目的所在,枚举法很简单,直接列写公式就把计算机当成计算器。层主这个方法能降低复杂度。

wersadf 发表于 2016-7-21 18:16:19

nums=0

for i in range(1,1001):
    if i%3==0 or i%5==0:
      nums+=i
print(nums)

wersadf 发表于 2016-7-21 18:17:14

nums=0

for i in range(1,1001):
    if i%3==0 or i%5==0:
      nums+=i
print(nums)
页: 1 [2] 3 4 5 6 7 8 9 10 11
查看完整版本: 题目1:找出1000以下自然数中3和5的倍数之和