• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zadanie SPOJ- Dwie cyfry silni. Jeśli chcesz robić to zadanie nie wchodź

VPS Starter Arubacloud
+1 głos
570 wizyt
pytanie zadane 14 lipca 2017 w C i C++ przez pikondziu_24 Nowicjusz (160 p.)

Witam,

wyskakuje mi błąd mimo, że program działa prawidłowo. Wcześniej miałem przekroczony limit czasu ale zorientowałem, że nie ma sensu liczyć silni dla n>10 i dodałem odpowiedni warunek jednak teraz wyskakuje błąd. 

Co może być nie tak? 

#include <iostream>
#include <cstdlib>

using namespace std;

int ile, n;

int main()
{
    cin>>ile;
    if((ile<=0)||(ile>30)) cout<<"Zle"<<endl;
    for(int i=0;i<ile;i++)
    {
        cin>>n;
        if(n<0) cout<<"Zle"<<endl;
        else if(n>=10) cout<<0<<" "<<0<<endl;
        else
        {
        for(int j=n-1; j>1; j--)
        {
            n*=j;
        }
        cout<<(n%100)/10<<" "<<n%10<<endl;
        }
    }
    return 0;
}

 

1 odpowiedź

+1 głos
odpowiedź 14 lipca 2017 przez Bosswell Nałogowiec (36,470 p.)
wybrane 14 lipca 2017 przez pikondziu_24
 
Najlepsza

1. 

if((ile<=0)||(ile>30)) cout<<"Zle"<<endl;

 

if(n<0) cout<<"Zle"<<endl;

Te warunki są dla Ciebie. Nie musisz ich umieszczać w kodzie.

2. Sprawdź w twoim programie, czy za każdym razem dobrze liczysz silnie od 0 do 9 ;) Tyle Ci wystarczy.

1
komentarz 14 lipca 2017 przez pikondziu_24 Nowicjusz (160 p.)
Dzięki za tip z warunkami. Źle mi liczyło dla 0 faktycznie poprawiłem i zaakceptowało dzięki wielkie :D
komentarz 14 lipca 2017 przez Jakub 0 Pasjonat (23,120 p.)

Hej ,mam podobny problem do tego . Nie tworzę nowego pytania bo ty takie już zadałeś  .

Czy może orientujecie się co ja zrobiłem źle ... program mi się kompiluje ale sędzia na SPOJ pisze że to jest zła odpowiedź, będę wdzięczny za wszelką pomoc :)

#include <iostream>

using namespace std;

int main()
{
    long long int d, n;
    cin>>d; //ilosc testow

    for(int i=1; i<=d; i++)
    {
        cin>>n; //pobieramy liczbe

        if(n>=10)cout<<0<<" "<<0<<endl; //jezeli liczba jest wieksza od 9 to i tak jednostki i dziesiatki beda zerami
        else if(n==0)cout<<0<<" "<<0<<endl; //tu tak samo

        else //obliczmy silnie w przeciwnym wypadku
        {
            long long int dn=n;

            for(int j=n-1; j>=1; j--)
            {
                dn*=j;
            }

            cout<<(dn/10)%10<<" "<<dn%10<<endl; //pokazujemy najpierw dziesiatki a potem jednstki
        }
    }

    return 0;
}

Zależało mi żeby napisać swój własny kod ,porównuje z wcześniejszym i nie wiem co jest źle

 

1
komentarz 14 lipca 2017 przez Bosswell Nałogowiec (36,470 p.)

Zastanów się nad tą linią kodu 

else if(n==0)cout<<0<<" "<<0<<endl; //tu tak samo

 

komentarz 14 lipca 2017 przez Jakub 0 Pasjonat (23,120 p.)

dzięki yes . Wreszcie mi zaakceptowało ,zmieniłem na :

else if(n==0)cout<<0<<" "<<1<<endl; 

i jest OK ,nie miałem pojęcia że 0! to jeden ,przyznam że zadania ze SPOJ są trudne ...

 

1
komentarz 14 lipca 2017 przez Bosswell Nałogowiec (36,470 p.)

Podobne pytania

0 głosów
1 odpowiedź 474 wizyt
pytanie zadane 30 lipca 2017 w C i C++ przez Michał_Warmuz Mądrala (5,830 p.)
0 głosów
1 odpowiedź 441 wizyt
pytanie zadane 19 czerwca 2017 w SPOJ przez iWantCode Bywalec (2,170 p.)
0 głosów
2 odpowiedzi 568 wizyt

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...