Prosila bym uzywac prostych algorytmow typu: if, while, for, bo jestem na poziomie liceum i niektorych mogla bym nie miec na lekcji:)
Zadanie w programie C++

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-14T22:44:50+01:00
#include <cstdlib>
#include <iostream>

using namespace std;

//funkcja sprawdza, czy w tablicy
//jest juz zadany element
bool find(int* tab, int size, int elem)
{
for(int i=0; i<size; i++)
if(tab[i] == elem)
return true;

return false;
}

int main(int argc, char *argv[])
{
const int size = 15;
const int num = 37;

int counter = 0;

//tworzymy tymczasowa tablice
int *tab = new int[num];

//wypelniamy tymczasowa tablice wartosciami INT_MAX
for(int i=0; i<num; i++)
tab[i] = INT_MAX;


//wczytujemy kolejne liczby
for(int i=0; i<size; i++)
{
int buff, r;
cin>>buff;

//liczymy kolejne reszty
r = buff%37;

//liczymy i zapamietujemy niepowtarzajace sie reszty
if( !find(tab,size,r) )
{
tab[counter] = r;
counter++;
}

}


cout<<counter<<endl;

delete []tab;


system("PAUSE");
return 0;
}