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.
#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?