Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|

FCTRL3 - Dwie cyfry silni

Zadanie: Silnia

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 (1D≤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 (0n ≤ 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

Dodane przez:Rafal Nowak
Data dodania:2005-03-04
Limit czasu wykonania programu:1s
Limit długości kodu źródłowego5000B
Limit pamięci:1536MB
Cluster: Cube (Intel G860)
Języki programowania:All except: GOSU

ukryj komentarze
2018-06-17 16:29:20
#include <iostream>
using namespace std;

long int silnia(int a){
if(a==0) return 1;
else return a*silnia(a-1);

}

int main(){
int b,s,d,j;
cin>>b;
s=silnia(b);
d= s/10;
j= s-d*10;
cout<<d<<" "<<j;
}


Przepraszam bardzo ale powinien to przyjąć co nie?
2018-03-22 22:12:23
świetny przykład tego, że kod ma być dobrze zoptymalizowany. To był największy problem w tym zadaniu.
2018-03-22 18:46:05


Ostatnio edytowany: 2018-03-23 08:19:36
2018-03-17 23:27:47
#include <iostream>

using namespace std;
int silnia,b;
int main()
{
cout;
cin>>silnia;
b=silnia;
for(int i=1;i<=(silnia-1);i++)
{
b=b*i;
}
cout<<(b%100)/10<<" "<<b%10;
return 0;
}
co jest w tym źle?
2018-03-07 09:37:24
ok, po tygodniu szukania w internecie rozwiazania problemu udalo sie uzyskac zielonego ptaszka. Moim zdaniem to zadanie powinno zostac albo usuniete albo jego treść powinna zostać zmieniona. Jego trudność nie polega na napisaniu kodu a na tym, ze przez calkowicie niewlasciwa tresc zdania autor wprowadza wszystkich w blad. Dlatego to zdanie jest tak trudne . Dla tych którzy jeszcze nie skoncyli a próbują :

Zadanie nie polega na obliczeniu silni do miliarda i policzeniu wszystkich dziesiatek w wyniku, Zadanie polega na pokazaniu OSTATNIEJ cyfry dziesiątek i jedności... a to ogromna roznica. Teraz staje się jak nie ocenionego znaczenia nabiera podpowiedz typu : zobacz co dzieje sie z ostatnimi cyframi dziesiatek i jednosci dla silni > 9! ... mysle ze to znacznie ulatwi. pozdro.

Ostatnio edytowany: 2018-03-10 23:21:40
2018-03-04 16:11:16
Autorze, tak jak ktoś napisał, czeka na Ciebie specjalne miejsce w piekle :evil:
2018-02-26 22:14:18
2 dni kombinowania dlaczego sędzia nie chce przyjąć kodu. Facepalm, gdy odkryłem finalnie jak to zadanie jest proste i jak banalny kod trzeba napisać na zawsze pozostawi bliznę na moim czole. Autorze, w piekle jest specjalne miejsce dla takich jak Ty xD
2018-02-14 14:49:31
Tyle się człowiek nawXXrwiał, a wystarczyło pomyśleć ile wynosi n! dla n>9
2018-02-10 02:03:46
Az wstyd pokazywac, ale wyszedl mi (i zadzialal) tak prosty kod ze gotow jestem sie powstydzic:

#include <iostream>

int main(){
int D,n;
std::cin >> D;
while(D--){
int silnia[]={1,1,2,6,24,20,20,40,20,80,00};
std::cin >> n;
if(n>10) n=10;
std::cout << silnia[n]/10 << " " << silnia[n]%10 << std::endl;
}
}
2017-12-14 00:04:18
Problem pewnie dawno rozwiązany ale tak dla potomnych, kolega poniżej ma jeden malutki, malusieńki, taki tyci tyci błąd, jego kod dla wartości n=0 zwraca 0 0.
Ot tyle. Pamiętajcie, że 0!=1 i algorytm widocznie to sprawdza weryfikując kod.
Powodzenia :)
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.