[C++] Program obliczający sumę NWD

Kryk
Użytkownik
Użytkownik
Posty: 114
Rejestracja: 19 lut 2009, o 17:18
Płeć: Mężczyzna
Podziękował: 11 razy
Pomógł: 15 razy

[C++] Program obliczający sumę NWD

Post autor: Kryk »

Witam, mam do napisania program obliczający sumę wszystkich NWD.
Program ma pobierać liczby naturalne, jeżeli jest to \(\displaystyle{ 1}\) to liczy NWD dwóch ostatnich wprowadzonych liczb różnych od \(\displaystyle{ 1}\), gdy wpiszemy \(\displaystyle{ 0}\)
program wypisuje sumę wszystkich NWD i kończy działanie.

Np.

Kod: Zaznacz cały

Wejście:
5 5 1 1 4 2 1 0
Wyjście:
12
Napisałem program ale niestety nie działa jak powinien proszę o pomoc w naprawieniu go

Kod: Zaznacz cały

#include <iostream>
 
using namespace std;
 
int main()
{
int number, n, a, b, s, suma = 0;
 
 
for(int i = 0; i < 1000000000; i++)
{
cin >> n;
if(n == 0)
{
     cout << suma;
     break;
}
cin >> s;
if(s == 0)
{
     cout << suma;
     break;
}
 
 
if(n != 1 && s != 1 && n != 0 && s != 0)
     {
      a = n;
      b = s;
     }
if(n == 1)
{
     while(a != b)
     {
          if(a < b)
          { 
           b -= a;
          } 
          else
          {
           a -= b;
          }
     }
suma = suma + a;
}
if(s == 1)
{
     while(a != b)
     {
          if(a < b)
          { 
           b -= a;
          } 
          else
          {
           a -= b;
          }
     }
suma = suma + a;
}
 
 
}
 
 
 
system("pause");
return 0;
}
Ostatnio zmieniony 22 paź 2011, o 21:26 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
ODPOWIEDZ