PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : "Project Euler" Problem 1



cleptomanicx
15-09-2008, 16:34
Hallo,
Ich will die erste Aufgabe beim "Project Euler" lösen, aber irgendwie will es nicht klappen.
Hier die Aufgabe:

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.


meine Lösung:

#include <iostream>
using namespace std;


int main()
{

int sumtmp;
int sum;
int threesum;
int fivesum;

for ( int i = 1; sum<1000; i++)
{

threesum = i*3;
fivesum = i*5;
sum = threesum+fivesum+sumtmp;
sumtmp = sum;
cout <<"\ni:"<<i<<" "<<sum;



}

return 0;
}


Es genügt auch nur ein kleiner Hinweis.

MFG

mehlvogel
15-09-2008, 17:20
Naja, wäre natürlich noch besser wenn du auch angibst was dein Problem ist?

In diesem Fall wird zumindest nicht das getan, was gefordert ist, da nicht die Vielfachen von 3 und 5 die kleiner als 1000 aufsummiert werden, sondern nur folgende summe berechnet wird summe(3*i + 5*i) und du das größte i suchst für das die summe < 1000 ist.

Berufspenner
15-09-2008, 18:47
Es empfiehlt sich immer, wenn du arithmetische Berechnungen ausführen willst, deine Variablen vorher mit einem Wert zu initalisieren. Sonst brauchst du dich über seltsame Ergebnisse nicht wundern. Außerdem bist du mit dem Modulo-Operator hier viel besser bedient.


#include <iostream>
using namespace std;

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

for(i; i < 1000; i++)
{
if(i%3 == 0)
{
sum += i;
}
if(i%5 == 0)
{
sum += i;
}
}

cout << "Summe: " << sum << endl;

return 0;
}

cleptomanicx
17-09-2008, 21:19
Ich danke euch!

MFG