Anonymní profil mark – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil mark – Programujte.comAnonymní profil mark – Programujte.com

 

Příspěvky odeslané z IP adresy 78.45.137.–

mark
C / C++ › Mezní hodnoty
29. 10. 2012   #165493

Tak už nic už jsem to vyřešil a vše funguje - sčítání provádím manuálně, a dle ULLONG_MAX hlídám jednotlivé cifry maxima. na konci pak porovnávám carry (přenos z předchozího řádu). 

mark
C / C++ › Mezní hodnoty
29. 10. 2012   #165492

teď  řeším stejné zadání jako ty :D  Vše funguje až na to, že nehlídá tu horní mez. respektive hlídá, ale špatně. Jen nevím proč nepropadne podmínkou když součet dvou unsigned long long integerů je větší nebo roven hranici, nebo jedno ze sčítaných čísel je větší rovno horní mezi, tak program neukončí.

typedef unsigned long long int ulli;

int main()
{
    ulli vstup, count=0;
    int in1;

    printf("Zadejte cislo:\n");
    in1 = scanf("%llu", &vstup);
    if(in1 < 1)
    {
        printf("Nespravny vstup.\n");
    }else
    {
        ulli n1=0, n2=0;
        while(vstup < ULLONG_MAX){

            if(check(vstup) == 1) //otestujeme jestli je palindrom
            {
               printf("Vypocteny palindrom: %llu (iteraci: %i)\n", vstup, count);
               return 0;
            }else
            {
                count++;
                n1 = vstup;
                n2 = rotate(vstup);
                if(n1+n2 >= ULLONG_MAX)
                {
                     printf("Palindrom nenalezen.\n");
                     return 0;
                }
              
                vstup = n1 + n2;
            }
        } 
        printf("Palindrom nenalezen.\n");

    }
    return 0;
}

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032021 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý