Bardzo proszę o napisanie tego programu w języku c++ w jak najprostszy sposób, gdzie jedyną otworzoną biblioteką będzie iostream.

Małgosia lubi zadania matematyczne. Ostatnio dowiedziała się, że X MOD Y to reszta z dzielenia X przez Y. Poprosiła Dawida, żeby jej podał 15 liczb, a ona szybko obliczy, ile jest różnych reszt z dzielenia tych liczb przez 37. Pomóż Małgosi wykonać zadanie.
Zadanie
Napisz program, który:
wczyta ze standardowego wejścia 15 liczb,
wypisze na standardowe wyjście liczbę różnych reszt z dzielenia tych liczb przez 37.
Wejście
Wejście zawiera 15 liczb całkowitych n (1<=n<=10000), po jednej w każdym wierszu.
Wyjście
Program powinien wypisać liczbę różnych reszt z dzielenia wczytanych liczb przez 37.
Przykład
Dla danych wejściowych:
1
38
39
75
76
77
112
113
114
115
149
150
151
153
154
poprawną odpowiedzią jest:
6

1

Odpowiedzi

2010-02-07T16:03:33+01:00
Zamieszczam kod źródłowy programu:


#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
//tworzymy tablice o rozmiarze rownym liczbie
//wszystkich mozliwych reszt z dzielenia liczby przez 37
int tab[37];
//wypelniamy kazde pole tablicy zerem
//(tzn. wybrana reszta jeszcze sie nie pojawila)
for (int i=0 ; i<37 ; ++i)
tab[i] = 0;

//wczytujemy 15 liczb
for (int i=0 ; i<15 ; ++i)
{
int buff;
cin>>buff;

//obliczamy reszte z dzielenia kazdej z nich przez 37
int r = buff%37;
//zwiekszamy odpowiedni indeks w tablicy
tab[r] ++;
}

//zliczamy ile jest niezerowych elementow w naszej tablicy
//(tyle wlasnie jest roznych reszt z dzielenia liczby przez 37)
int out = 0;
for (int i=0; i <37 ; ++i)
if( tab[i] > 0 )
out++;

cout<<out<<endl;



system("PAUSE");
return 0;
}