プロジェクト Euler (および C コードの初心者) の問題解決に取り掛かりました。
問題 1 の状態: 3 または 5 の倍数である 10 未満の自然数をすべて列挙すると、3、5、6、および 9 になります。これらの倍数の合計は 23 です。3 または 5 のすべての倍数の合計を見つけます。 1000 未満です。自分のコードが正しい (または正しくない) と確信しています。codepad.org や ideone.com などの Web サイトでコードをコンパイルすると、「時間超過」と表示されます。コードの実行に時間がかかりすぎると思いますか? これはなぜですか?
私の解決策:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <assert.h>
int main (int argc, char *argv[]){
int i, j = 0;
for (i = 1; i <= 1000; i++){ //Traverses all the positive numbers under 1000
while ( (i % 5 == 0) || (i % 3 == 0)){
j = j + i; //If it's a multiple of 3 or 5 add it to the sum
}
}
printf("The sum of all multiples of 3 and 5 under 1000 is: %d", j);
return 0;
}