40 / 59
Dec 2018

Masz zły wynik dla pewnej bardzo małej wartości. Polecam wikipedię/google i poczytanie o silni :slight_smile:

Droga Spolecznosci,
rozpoczynam swoje kroki w jezyku Java. Przewertowalem forum, wdrozylem wiele podpowiedzi nie mnie jednak wciaz sedzia wyswietla informacje o przekroczonym limicie czasu. Czy ktos bylby tak mily i pomoglby mi znalezc przyczyne? Z gory bardzo dziekuje!

Coś słabo czytałeś. Ile zajmie ci wykonanie programu dla tego testu?
10
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000

Poza tym twój program daje złe wyniki: https://ideone.com/c7ZvlY5

Wie ktos dlaczego to nie dziala?

Chodzi mi bardziej o to ze w ideone dziala a u sedziego nie

działa dla niewielkiego zakresu wejścia - to że test z zadania daje poprawny wynik, to za mało :slight_smile:

sprawdź wynik np. dla:

1
100

Wyszlo “0 8” ale srednio mam gdzie sprawdzic poprawnosc tego poniewaz jest to ogromna liczba.
Czy python moze w zmiennej przechowywac tak duza liczbe?

A czytania ze zrozumieniem wątku nie próbowałeś ? Nawet jest podana wartość silnii 100… Wystarczy przeczytać 3 posty od góry…

dziekuje bardzo za wskazowki :wink: Udalo sie zaliczyc :smiley:

22910244
2018-12-19 21:20:37
krzysztof
Dwie cyfry silni
zaakceptowano

2 months later

Ktoś wie czemu spoj mi tego nie zalicza?

#include <iostream>
#include <string>

using namespace std;

int main()
{

int n,liczba, y, d, j;
string x;
cin>>n;
for(int i=0;i<n;i++)
{
    cin>>liczba;

    if(liczba<4)
    {
        if(liczba==0) cout<<0<<" "<<1<<endl;
        else cout<<0<<" "<<liczba<<endl;
    }
    else if(liczba<10)
    {
        if(liczba==4) cout<<2<<" "<<4<<endl;
        else if(liczba==5||liczba==6||liczba==8) cout<<2<<" "<<0<<endl;
        else if(liczba==7) cout<<4<<" "<<0<<endl;
        else if(liczba==9) cout<<8<<" "<<0<<endl;
    }
    else
    {
        cout<<0<<" "<<0<<endl;
    }

}


return 0;
}
4 years later

Hej, a wie ktoś czemu mi wyrzuca timeout?

#include <iostream>
#include <math.h>
using namespace std;

int wynikSilni = 1;
int silnia(int liczba) {
    if(liczba == 0 || liczba == 1) return wynikSilni;
    return liczba * silnia(liczba-1);
}

int ile;

int main() {
    cin >> ile;
    int tab[ile];
    int rozdzielona[2];
    for (int i = 1; i <= ile; i++) {
        cin >> tab[i];
        string wynik = to_string(silnia(tab[i]));
        int jednosci = wynik.length() - 1;
        int dziesiatki = wynik.length() - 2;
        if(wynik[dziesiatki] == NULL) {
            wynik[1] = wynik[jednosci];
            wynik[0] = '0';
            dziesiatki++;
            jednosci++;
        }

        cout << wynik[dziesiatki] << " " << wynik[jednosci] << endl;
    }
}
  1. Uruchomiałeś swój kod na Ideone? Nie uruchamiałeś. To zrób to i zobacz jakie cuda są na wyniku.
  2. Drugi problem (dotyczący 99% błędnych rozwiązań) jest opisany wiele razy, nawet w tym wątku, kilka postów wyżej.

Podziwiam za cierpliwość. Na ten wątek i chyba o liczbach pierwszych zaglądam żeby sprawdzić na jakie “rewelacyjne” pomysły powpadały…

Masz rację, liczby pierwsze i silnia biją rekordy :slight_smile: dodałbym do tego jeszcze “Czy umiesz potęgować”.
Kilka lat temu przeczytałem na jakimś forum, że SPOJ jest beznadziejny, bo odrzucają dobre rozwiązania zadań. Podał przy tym przykład swojego “dobrego” rozwiązania. Zaciekawiło mnie to, wszedłem na SPOJ i tak to się dla mnie zaczęło… :sunglasses:

To są trzy pierwsze zadania na liście zadań łatwych, a w łatwych to nie są najłatwiejsze zadania. Można tę listę posortować w/g ilości AC rozwiązań, ale skąd to mają wiedzieć początkujący, a to sortowanie i tak nie do końca “wyciągnie” wszystkie najłatwiejsze zadania na początek posortowanej listy.