Hirdetés

Új hozzászólás Aktív témák

  • vamzi

    őstag

    válasz Karma #1842 üzenetére

    A feladat szövege:
    A vb hangja

    „KO-RE-A, KO-RE-A” – kiabálta 54 000 boldog futballszurkoló, miután csapatuk a hazai rendezésű világbajnokságon bejutott az elődöntőbe. Izgatottságuk dacára azonban a koreai emberek természetüknél fogva nagyon szervezettek. Például hatalmas, hajókürthöz hasonló hangú trombitákkal szurkoltak a pályán játszó csapatuknak. A szurkolók egy állandó zajszintet szeretnének fenntartani a meccs teljes ideje alatt.

    A trombiták sűrített levegővel működnek, azonban ha 2 másodpercig folyamatosan fújják őket, elromlanak. Ezért amikor a trombita hangot ad, minden rendben van, de a trombitahangok szüneteiben a szurkolóknak a „KO-RE-A” kiáltást kell harsogniuk.

    A mérkőzés előtt egy szurkolócsoport összegyűl és eldönti a kiáltás mintáját. A minta 0-k és 1-esek sorozata, amelyet a következőképpen értelmezünk: ha a minta 1-es, akkor a trombita kerül megfújásra, ha pedig 0, akkor a „KO-RE-A” kiáltás következik. Annak érdekében, hogy a trombiták nehogy elromoljanak, a minta nem tartalmazhat két egymást követő 1-est.

    Ebben a feladatban tehát egy adott, pozitív egész n-re meg kell határozni az ilyen hosszúságú kiáltási mintákat, vagyis azon n bites sorozatok darabszámát, amelyek nem tartalmaznak egymás melletti 1-eseket. Például n = 3 esetén a megoldás 5 (a 000, a 001, a 010, az 100 és az 101 sorozatok elfogadhatóak, míg a 011, az 110 és az 111 nem).

    Input
    Az első sor a tesztesetek számát tartalmazza. Az első sort követő sorok mindegyike egy-egy tesztesetet ír le. Minden teszteset egy olyan sor, amely egyetlen, 51-nél kisebb egész számot tartalmaz.

    Output
    Minden teszteset kimenete egy olyan sorral kezdődik, amely a „Scenario #i:” szöveget tartalmazza, ahol i a teszteset sorszáma. A tesztesetek sorszámozása 1-től indul. Ezt követően egy újabb sorba kell kiírni az egymás melletti 1-eseket nem tartalmazó n bites sorozatok darabszámát. Minden teszteset kiírását egy üres sorral kell lezárni.

    ********************************************************************************

    A megoldásom:
    #include <stdio.h>
    long long int tomb[100], tesztesetek_szama, i, eredmeny;

    int main(){

    scanf("%d",&tesztesetek_szama);
    for (i=0;i<tesztesetek_szama;i++){
    scanf("%d",&tomb[i]);
    }

    for (i=1;i<=tesztesetek_szama;i++){
    eredmeny = ((pow( (1+sqrt(5)),(tomb[i-1]) )) * ( 5+(3*sqrt(5)) ) + ( pow( (1-sqrt(5)),(tomb[i-1]) ) ) * ( 5-(3*sqrt(5)) )) / ( 10*(pow( (2),(tomb[i-1]) )) );
    printf("Scenario #%d:\n",i);
    printf("%lld\n",eredmeny);
    printf("\n");
    }
    return 0;
    }

    CodeBlocks-ban szépen lefordul és működik, de a szerveren ahol tesztelni kell, elég sok hibát dob, a nagyját mindjárt meg is oldom(remélem) csak van egy kis dolgom. Egyébként itt a hibaüzi:
    Fordítás: bead1.c:2: error: ISO C90 does not support �long long’
    bead1.c: In function �main’:
    bead1.c:6: warning: format �%d’ expects type �int *’, but argument 2 has type �long long int *’
    bead1.c:8: warning: format �%d’ expects type �int *’, but argument 2 has type �long long int *’
    bead1.c:12: warning: implicit declaration of function �pow’
    bead1.c:12: warning: incompatible implicit declaration of built-in function �pow’
    bead1.c:12: warning: implicit declaration of function �sqrt’
    bead1.c:12: warning: incompatible implicit declaration of built-in function �sqrt’
    bead1.c:13: warning: format �%d’ expects type �int’, but argument 2 has type �long long int’
    bead1.c:14: warning: ISO C90 does not support the �ll’ printf length modifier
    Fordítási hiba.
    Exit status: 3

    [ Szerkesztve ]

Új hozzászólás Aktív témák