Hirdetés

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

  • Forest_roby
    őstag

    ezt egyszerűbben is meg lehet írni némi gondolkozás után. az elgondolás, hogy nem írjuk le ugyanazt 13-szor, ha elég egyszer megtenni. (lehet becsúszott itt-ott szintaktikai hiba a kódba, nem próbáltam ki).

    void main(){
    //beolvasás billentyűzetről a 'be' változóba

    int i;
    int szamok[]={1000,900,500,400,100,90,50,40,10,9,5,4,1};
    string jelek[]={''M'',''CM'',''D'',''CD'',''C'',''XC'',''L'',''XL'',''X'',''IX'',''V'',''IV'',''I''};

    for (i=0;i<13;i++){
    while (be>szamok){
    printf(''%s'',jelek
    );
    be=be-szamok;
    }
    }
    }




    [Szerkesztve]

    Igazából ezt is vártam. Biztos voltam benne, hogy vki fog ide írni egy sokkal jobb, frappánsabb megoldást. Igaz, ami igaz, a te megoldásod rövidebb. Én is gondolkoztam rajta, hogy tudnám kiváltani a sok for-t eggyel, de nem jöttem rá. Gondoltam rá, hogy egy ciklussal, mint ahogy te is, de ......., nem tudom a ''szamok[]'' -at (1000, 900, 500, ....) ill. a ''jelek[]'' -et (M,CM,D,....) hogy hozom be a képbe, hogy minden ciklusban más és más szerepeljen. Igazából én még nem is láttam ilyen fajta gondolkodású megoldást. Egyszerű és mégis zseniális. Tetszik, ezt megjegyzem magamnak.

    :C :C :C :C :C :C

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