[ Exit @ 01.08.2007. 16:29 ] @
Vidio sam ovaj zadatak na z-treningu Citat: Oznacimo sa p proizvod svih brojeva od 1 do n (1 <= n <= 10000). Napisati program koji izracunava poslednju cifru broja p (zapisanog u dekadnom sistemu) razlicitu od 0. Sa standardnog ulaza se ucitava broj n, a program treba da na standardni izlaz ispiše poslednju nenultu cifru broja p. Primer: Ulaz: 10 Izlaz: 8 Komentar: 1*2*3*4*5*6*7*8*9*10 = 3628800 pa je poslednja nenulta cifra 8. i evo mog koda. Radi dobro sa malim brojevima ali kad se ukuca neki veći broj kao ulazni (n) program blokira. Code: #include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { int n, p = 1, res; cout<<"Unesi broj n:"<<endl; cin>>n; if (n< 1 || n>10000) { cout<<"Invalidna vrijednost\n"; return 0; } for (int i =1; i<=n;i++){ p=p*i; } res = p % 10; if (res != 0){ cout<<res<<endl;} else { while (res == 0) { p = p / 10; res = p % 10; } cout<<res<<endl; } system("PAUSE"); return EXIT_SUCCESS; } Može li mi neko reći gdje je greška? |