<원문>
If we list all the natural number below 10 that are multiples pf 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의 배수의 총합을 구하라.
어떻게 구해볼까?
- 1. 3의 배수의 리스트를 구하고 5의 배수의 리스트를 구한 다음 그 숫자들을 합한다.
- 2. 1에서 1000까지의 숫자중에서 3과 5로 나누에 떨어지는 숫자들의 합을 구한다.
Swift
import Cocoa
var str = "Hello, Playground"
var i, sum_of_multiples_of_3_and_5: Int
sum_of_multiples_of_3_and_5 = 0
for i = 1; i <= 1000; i = i + 1 {
if i % 3 == 0 {
sum_of_multiples_of_3_and_5 = sum_of_multiples_of_3_and_5 + 1
}
if i % 5 == 0 {
sum_of_multiples_of_3_and_5 = sum_of_multiples_of_3_and_5 + 1
}
}
println(sum_of_multiples_of_3_and_5)
이렇게 최초로 작성을 하였는데 역시나 3과 5의 배수중 중복되는 합산 되어 버렸다.
그래서...
1-1. 3과 5의 배수중 중복되는 수(예를 들면 15같은...)의 경우 중복되어서 합산이 되는 경우가 생길 것임.
1-2. 3과 5의 배수중 중복되는 수는 한 쪽을 없애주어야 함
1-3. 이 경우 중복되는 수인지를 판단하게 하는 반복 & 조건문이 추가되어야 함
2-1. 역시 3과 5의 배수중 중복되는 수가 합산 될 수 있음
2-2. 중복되는 수인지를 판단하게하는 반복 & 조건문이 추가 되어야 함
이와 같이 고민을 좀 해보고 수정을...
Swift
import Cocoa
var str = "Hello, playground"
var i, sum_of_multiples_of_3_and_5: Int
sum_of_multiples_of_3_and_5 = 0
for(i = 1; i <= 999; i = i + 1){
if(i % 3 == 0 || i % 5 == 0){
sum_of_multiples_of_3_and_5 = sum_of_multiples_of_3_and_5 + i
}
}
println(sum_of_multiples_of_3_and_5)
objective-C
#import <Cocoa/Cocoa.h>
int main(int argc, const char * argv[]) {
int i, sum_of_multiples_of_3_and_5;
sum_of_multiples_of_3_and_5 = 0;
for (i = 0; i < 1000; i = i + 1) {
if (i % 3 == 0 || i % 5 == 0) {
sum_of_multiples_of_3_and_5 = sum_of_multiples_of_3_and_5 + i;
}
}
printf("1에서 1000까지 수중 3과 5의 배수의 합은 %d이다.", sum_of_multiples_of_3_and_5);
return NSApplicationMain(argc, argv);
}
그러고 보니 레벨1 짜리 문제라서 그런지 좀 쉽...
근데 한 번 틀렸음 부끄...