Cerinţa
Se citește un număr natural n. Să se determine ultima cifră nenulă din scrierea zecimală a numărului n!.
Date de intrare
Programul citește de la tastatură numărul n.
Date de ieşire
Programul afișează pe ecran numărul C, reprezentând ultima cifră nenulă din scrierea zecimală a numărului n!.
Restricţii şi precizări
1 ≤ n ≤ 1000
n! = 1 * 2 * ... * n
Exemplu
Intrare
13
Ieșire
8
Explicație
13! = 6227020800, iar ultima cifră nenulă este 8.
Răspunsuri la întrebare
Răspuns de
4
#include <iostream>
using namespace std;
int sol(int val)
{
switch(val) {
case 0: return 1;
case 1: return 1;
case 2: return 2;
case 3: return 6;
case 4: return 4;
case 5: return 2;
case 6: return 2;
case 7: return 4;
case 8: return 2;
case 9: return 8;
default: return (sol(val / 5) * sol(val % 10) * ((val / 10 % 10 % 2) ? 4 : 6)) % 10;
}
}
int main()
{
int n;
cin >> n;
cout << sol(n) << '\n';
return 0;
}
using namespace std;
int sol(int val)
{
switch(val) {
case 0: return 1;
case 1: return 1;
case 2: return 2;
case 3: return 6;
case 4: return 4;
case 5: return 2;
case 6: return 2;
case 7: return 4;
case 8: return 2;
case 9: return 8;
default: return (sol(val / 5) * sol(val % 10) * ((val / 10 % 10 % 2) ? 4 : 6)) % 10;
}
}
int main()
{
int n;
cin >> n;
cout << sol(n) << '\n';
return 0;
}
AntiEaglesDavids:
merge si pentru 1 <= n <= 2^31-1 (2.147.483.647)
Alte întrebări interesante
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă