Multiples of 3 and 5

오랜만에 퀴즈하나 투척합니다.

프로젝트 오일러라고 들어보셨나요?
프로그래밍 퀴즈를 풀이하는 유명한 곳인데요..
그곳에 있는 첫번째 문제를 이곳 코딩도장에 한번 소개해 볼까 합니다.

http://projecteuler.net/problem=1

[문제]

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의 배수의 총합을 구하라.

정답은 위 사이트에서 직접 확인 가능합니다.

multiples
※ 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

358개의 풀이가 있습니다. 32 / 36 Page

sum=0
for num in range(0,1000):
    if num%3==0:
        sum+=num
    elif num%5==0:
        sum+=num
※ 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.
#include<stdio.h>
#include<Windows.h>
#define MAX 10

int main()
{
    int i=1,sum=0;
    while(i<MAX)
    {
      if((i%3==0)||(i%5==0))
          sum+=i;
      i++;
    }
    printf("총합은 %d입니다\n",sum);
    system("pause");
    return 0 ;
}

2016/12/28 15:11

oh

※ 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

무난무난하게...

#include <iostream>

int main(void)
{
    using namespace std;
    int N;
    cout << "Input N: ";
    cin >> N;

    int sum = 0;
    for(int i = 1; i < N; i++)
    {
        if(i % 3 == 0 || i % 5 == 0)
            sum+=i;
    }
    cout << "Result : " << sum << endl;
}

※ 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

set3 = set(range(3, 1000, 3)) set5 = set(range(5, 1000, 5))

print sum(set3 | set5)

※ 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

public class test02 { public static void main(String[] args) { int a = 3; int b = 5; int sum = 0; for(int i = 1; i<1000; i++){ if(i % a ==0){ sum += i; } if(i % b ==0){ sum += i; } if(i % (a*b) ==0){ sum -= i; } } System.out.println(sum); } }

※ 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

매트랩은 없는것 같아서 올립니다.

result = 0;
for i = 1 : 999
    if (mod(i, 3)==0) || (mod(i, 5)==0)
        result = result + i;
    end
end
disp(result)
※ 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.
int x = 3, y = 5, z = 15;
        int result =  0;
        for (int i = 1; i < 1000; i++) {
            if(i % 3 == 0 || i % 5 == 0)
                result += i;
            if(i % 3 == 0 && i % 5 == 0)
                result -= i ;
        }
        System.out.println(result +"");

3의배수 + 5의 배수 - 15의 배수 아닌가요??????

※ 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.
$array = array();
for($i=1000;1<=$i;$i--) if($i%5 == 0  || $i%3 == 0 ) $array[] = $i;
echo array_sum($array); // 234168
※ 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

간단하게 STL 벡터를 이용해서 풀어봤습니다.

#include <iostream>
#include <vector>
using namespace std;


int main()
{
    vector<int> ivec;
    int iSum = 0;
    for(int i = 0; i < 1000; ++i)
    {
        if(i % 3 == 0 || i % 5 == 0)
        {
            ivec.push_back(i);
        }
    }

    vector<int>::iterator iter = ivec.begin();
    vector<int>::iterator Enditer = ivec.end();


    for(iter = ivec.begin(); iter != Enditer; ++iter)
    {
        iSum += *iter;
    }

    cout << iSum << endl;

    return 0;
}


※ 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

public class Multiple { public static void main(String[] args) { int sum = 0; for (int i=1; i<1000; i++) { if (i%3 == 0 || i%5 == 0) { sum += i; } } System.out.println("Answer : " + sum); } }

※ 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

풀이 작성

※ 풀이작성 안내
  • 본문에 코드를 삽입할 경우 에디터 우측 상단의 "코드삽입" 버튼을 이용 해 주세요.
  • 마크다운 문법으로 본문을 작성 해 주세요.
  • 풀이를 읽는 사람들을 위하여 풀이에 대한 설명도 부탁드려요. (아이디어나 사용한 알고리즘 또는 참고한 자료등)
  • 작성한 풀이는 다른 사람(빨간띠 이상)에 의해서 내용이 개선될 수 있습니다.
목록으로
코딩도장

코딩도장은 프로그래밍 문제풀이를 통해서 코딩 실력을 수련(Practice)하는 곳입니다.

multiples x 2
연관 문제
김현중, 2017/03/24 15:31

언어별 풀이 현황
전 체 x 358
python x 132
java x 64
cs x 9
기 타 x 64
cpp x 51
haskell x 4
ruby x 4
lisp x 1
r x 2
clojure x 1
scala x 5
php x 4
delphi x 2
perl x 2
javascript x 4
objectivec x 2
go x 3
matlab x 4