Zapraszam do doskonalenia swoich koderskich umiejętności.
Nie jesteś zalogowany na forum.
Strony: 1
Niech n będzie nieujemną liczbą całkowitą. Liczbę n! (czytaj n-silnia) definiuje się następująco. Jeśli n ≤ 1, to n! = 1. Dla n > 1, n! jest równe iloczynowi wszystkich liczb od 1 do n, czyli n! = 1 * 2 * ... * n. Na przykład 4! = 1*2*3*4 = 24.
Zadanie
Napisz program, który:
wczyta ze standardowego wejścia nieujemną liczbę całkowitą n,
policzy cyfrę dziesiatek oraz cyfrę jedności w zapisie dziesiętnym liczby n!,
wypisze wynik na standardowe wyjście.
Wejście
W pierwszej linii wejścia znajduje się jedna liczba całkowia D (1≤D≤30), oznaczjąca liczbę przypadków do rozważenia. Opis każdego przypadku składa się z jednej linii, w której znajduje się jedna nieujemna liczba całkowita n (0 ≤ n ≤ 1 000 000 000).
Wyjście
Dla każdego przypadku z wejścia. Twój program powinien wypisać w osobnej linii dokładnie dwie cyfry (oddzielone pojedynczą spacją): cyfrę dziesiątek i cyfrę jedności liczby n! zapisanej w systemie dziesiętnym.
Przykład
Dla danych wejściowych:
2
1
4
poprawną odpowiedzią jest:
0 1
2 4
źródło: http://pl.spoj.com/problems/FCTRL3/
Kod:
#include <iostream>
using namespace std;
long long liczsilnie(int n);
int main()
{
unsigned int n;
cin >> n;
unsigned int* tab=new unsigned int[n];
for(int i=0; i<n; i++)
{
cin >> tab[i];
tab[i]=liczsilnie(tab[i]);
}
for(int i=0; i<n; i++)
{
cout << ((tab[i]/10)%10) << " " << (tab[i]%10) << endl;
}
system("PAUSE");
return 0;
}
long long liczsilnie(int n)
{
long long s=1;
for(int i=1; i<n; i++)
{
s*=(i+1);
}
return s;
}
*Działa jednakże przekracza limit czasu na wykonanie.
Offline
Strony: 1