悠然随心 发表于 2017-7-3 22:20:03

Plinskin 发表于 2017-7-3 17:21
print "To Find The Sum Of All The Multiples Of 3 Or 5 Below 1000"

counterNum=0


因为题目是1000以下,而你包含了1000,不知我说的对不对{:10_323:}

portcc 发表于 2017-7-7 16:55:25

x=0
y=0
for i in range(0,1000):
        if i%3 ==0:
                x = x+i
for i in range(0,1000):
        if i%5 ==0 and i%3!=0:
                y= y+i
print(x+y)

结果为 233168.

燃烧的发丝 发表于 2017-7-24 21:32:57

本帖最后由 燃烧的发丝 于 2017-7-24 21:45 编辑

// 非枚举算法
//循环333次即可
// 计算时间 为枚举算法的 3分之1    计算结果为233168

#include <iostream>

int main()
{
        static int x3 = 3;
        static int x5 = 5;
        static int x15 = 15;
        static int x = 0;
        while (true)
        {       
                if (x3 < 1000)
                {
                        x += x3;
                        x3 += 3;                       
                        if (x5 < 1000)
                        {
                                x += x5;
                                x5 += 5;                               
                        }
                        if (x15 < 1000)
                        {
                                x -= x15;
                                x15 += 15;                               
                        }
                }
                else
                {
                        break;
                }
        }

        std:: cout<< "1000以下的自然数中,属于3或5的倍数的数字之和为:" <<
                x << std::endl;       
}

燃烧的发丝 发表于 2017-7-24 21:43:41

本帖最后由 燃烧的发丝 于 2017-7-24 21:46 编辑

{:5_97:} {:5_97:}

学了小甲鱼的数据结构与算法   思维还真是不一样了;

EFishC 发表于 2017-7-25 17:18:29

#include<stdio.h>

int main()
{
        int sum = 0,i;

        for(i = 1;i < 1000;i++)
        {
                if((i % 3 == 0 ) || (i % 5 == 0))
                {       
                        sum += i;
                }
                else
                {
                        continue;
                }
        printf("sum = %d\n",sum);

}

结果是233168.

砚凉— 发表于 2017-7-28 16:07:42

1.桶排序 重复次数为1的数相加 缺点:占内存
2.for循环 执行时间长if(n%3==0)
{
if(n%5==0)
{
s+=n;
break;
}
sum+=n;
}

if(n%5==0&&n%15!=0)
sum+=n;

sum+=s;

看云20101 发表于 2017-8-2 16:20:00

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

print(sum)

麦特的灰 发表于 2017-8-7 08:05:51

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

print ("1000以内3或者5的倍数的和为:%d" % sum)

麦特的灰 发表于 2017-8-7 08:07:34

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

print ("1000以内3或者5的倍数的和为:%d" % sum)

向西而笑 发表于 2017-8-18 18:12:22

一行搞定:
sum()

Kotori 发表于 2017-9-9 07:42:40

#include <stdio.h>

int main(void)
{
        int i;
        int sum = 0;
       
        for (i=1;i<1000;i++)
        {
                if (i%3 == 0 || i%5 == 0)
                {
                        sum += i;
                }
        }
       
        printf("1000以下的自然数中,属于3和5的倍数的数字之和:%d", sum);
       
        return 0;
}

遇见2017 发表于 2017-9-24 22:11:42

gongxiaobo2006 发表于 2015-4-24 14:25
我的结果是233168!哈哈哈哈哈

s=3*sum(1:333)+5*sum(1:200);
s=267333

jerryxjr1220 发表于 2017-9-29 15:38:28

AArdio编译
import console;
import time.timer

console.setTitle("test");

time.timer.start();
sum = 0;
for(i=3;999;3){
        sum += i

}
for(i=5;999;5){
        sum += i

}
for(i=15;999;15){
        sum -= i

}

console.print(sum);

console.print(time.timer.endTick())

console.pause();
233168
0.45397067070007
请按任意键继续 ...

??? 发表于 2017-10-20 15:56:58

print(sum())

编程新血 发表于 2017-11-1 20:04:47

本帖最后由 编程新血 于 2017-11-1 20:18 编辑

python3:

l3=list(range(3,1000,3))
l5=list(range(5,1000,5))
listz=list(set(l3+l5))
print(sum(listz))

取3的倍数列表,与5的倍数列表组合一起,去掉重复选项,

结果是233168

zjhnz 发表于 2018-1-4 10:30:56

#include <stdio.h>

int main(void)
{
        int i;
        long sum=0;
       
        for(i=1; i<1000; i++)
        {
                if (i%3==0 || i%5==0)
                {
                        sum=sum+i;
                }
       }
       printf("%ld",sum);
}

artistlu 发表于 2018-1-31 00:11:28

1 #include <stdio.h>
2
3 int multiSum(int, int);
4
5 int multiSum(int max, int n)
6 {
7   int total, maxMulti;
8
9   maxMulti = max / n;
10   return(maxMulti * (maxMulti + 1)) / 2 * n;
11 }
12
13 int main(void)
14 {
15   int total;
16   total = multiSum(1000, 3) + multiSum(1000, 5) - multiSum(1000, 3 * 5);
17   printf("%d\n", total); //234168
18   return 0;
19 }

由我们主宰 发表于 2018-3-4 15:08:52

#include<stdio.h>
int main()
{
        int i,sum=0;
        for(i=0;i<1000;i++)
        {
                if(i%3==0||i%5==0)
                {
                        sum=sum+i;
                }
        }
        printf("%d\n",sum);
        return 0;
}

°蓝鲤歌蓝 发表于 2018-3-4 20:23:05

sum1 = sum()

victor.xu 发表于 2018-3-14 13:16:49

def f(n):
    s = 0
    for i in range(n):
      if i % 3 == 0 or i % 5 == 0:
            s += i
    return s
num = 1000
result = f(1000)
print('1000以内,3或5的倍数的数字之和为:%d' % result)
页: 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14
查看完整版本: 题目1:找出1000以下自然数中3和5的倍数之和