Spoj przekorczenie czasu

Spoj przekorczenie czasu
  • Rejestracja: dni
  • Ostatnio: dni
0

Witam robie to zadanie : http://pl.spoj.com/problems/FCTRL3/
I zrobiłem je wydaje mi się,że jest dobrze u mnie wykonuje się szybko.Robiłem bez rekurencji i z rekurencja ostateczny wynik to :
Może źle przekazuje ilość d?No ale musze ją przekazać tak?

Kopiuj
 #include <iostream>
using namespace std;
int silnia(int n);
int main()
{
	int d;
	cin >> d;
	if (d < 30)
	{
		for (int j = 0; j < d; j++)
		{
			int wynik = 1;
			int n;
			cin >> n;
			wynik = silnia(n);
			cout << (wynik / 10) % 10 << " " << wynik % 10 << endl;
		}
	}
	return 0;
}
int silnia(int n)
{
	if (n == 1)
	{
		return 1;
	}
	else
	{
		return silnia(n - 1)*n;
	}
}
twonek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2500
0

I zrobiłem je wydaje mi się,że jest dobrze u mnie wykonuje się szybko

Wg specyfikacji zadania:

nieujemna liczba całkowita n (0 ≤ n ≤ 1 000 000 000)

Wykonaj u siebie test dla n == 1 000 000 000, a potem powiedz nam ile czasu to zajęło.

  • Rejestracja: dni
  • Ostatnio: dni
0

No nie zadziała takie cos :) To jak się powinno wykonwać takie duże silnie?

mad_penguin
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Rzeszów
3

Oblicz sobie kilka przykładowych dużych silni i przyjrzyj się wynikom, coś powinno zwrócić twoją uwagę kontekście zadania.

kq
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
2

Zadanie nie polega na liczeniu wartości silni. Tak jak wskazał @mad_penguin przyjrzyj się wynikom silni kolejnych liczb naturalnych a potem przeczytaj zadanie ze zrozumieniem :​)

  • Rejestracja: dni
  • Ostatnio: dni
0

Dla większych silni cyfry jedności i dziesiątek robią się ujemne,patrząc w debugerze silnia wychodzi ujemna,ale dalej nie wiem jak to rozwiązać.Ta funkcja rekurencyjna nie będzie dobra?

kq
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
2

Odpuść na razie debugger. Matematycznie, jakie kolejne są wartości silni kolejnych liczb naturalnych? Konkretnie ostatnie dwie cyfry?

  • Rejestracja: dni
  • Ostatnio: dni
0

Do silni z 10 jest różnie potem są tylko 0.Czyli liczyc silnie do 10,a potem zrobić same zera?

kq
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
1

Generalnie na tym polega zadanie - masz to zauważyć i wykorzystać.

  • Rejestracja: dni
  • Ostatnio: dni
0

Okej dziękuje.Dopiero zaczynam robić spoja teraz będe bardziej myślał niż prosto w jeden sposób.

twonek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2500
1

Wystarczy popatrzeć na zakres danych wejściowych. Skoro n <= 1000 000 000 to od razu można wykluczyć wyliczenie pełnej silni.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.