Няшная / Говнокод #10226 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
#include<stdio.h>

int main()
{
    int i,p,q,sum=0;
    for(i=0;i<1000000;i++)
    {
        p=0;
        if(i<10) p=1;
        else if(i<100){ if(i/10==i%10) p=1;}
        else if(i<1000){ if(i/100==i%10) p=1;}
        else if(i<10000){ if(i/1000==i%10 && (i%1000)/100==(i%100)/10) p=1;}
        else if(i<100000){ if(i/10000==i%10 && (i%10000)/1000==(i%100)/10) p=1;}
        else if(i<1000000){ if(i/100000==i%10 && (i%100000)/10000==(i%100)/10 && (i%10000)/1000==(i%1000)/100) p=1;}
        q=0;
        if(i<2) q=1;
        else if(i<4){if(i/2==i%2) q=1;}
        else if(i<8){if(i/4==i%2) q=1;}
        else if(i<16){if(i/8==i%2 && (i%8)/4==(i%4)/2) q=1;}
        else if(i<32){if(i/16==i%2 && (i%16)/8==(i%4)/2) q=1;}
        else if(i<64){if(i/32==i%2 && (i%32)/16==(i%4)/2 && (i%16)/8==(i%8)/4) q=1;}
        else if(i<128){if(i/64==i%2 && (i%64)/32==(i%4)/2 && (i%32)/16==(i%8)/4) q=1;}
        else if(i<256){if(i/128==i%2 && (i%128)/64==(i%4)/2 && (i%64)/32==(i%8)/4 && (i%32)/16==(i%16)/8) q=1;}
        else if(i<512){if(i/256==i%2 && (i%256)/128==(i%4)/2 && (i%128)/64==(i%8)/4 && (i%64)/32==(i%16)/8) q=1;}
        else if(i<1024){if(i/512==i%2 && (i%512)/256==(i%4)/2 && (i%256)/128==(i%8)/4 && (i%128)/64==(i%16)/8 && (i%64)/32==(i%32)/16) q=1;}
        else if(i<2048){if(i/1024==i%2 && (i%1024)/512==(i%4)/2 && (i%512)/256==(i%8)/4 && (i%256)/128==(i%16)/8 && (i%128)/64==(i%32)/16) q=1;}
        else if(i<4096){if(i/2048==i%2 && (i%2048)/1024==(i%4)/2 && (i%1024)/512==(i%8)/4 && (i%512)/256==(i%16)/8 && (i%256)/128==(i%32)/16 && (i%128)/64==(i%64)/32) q=1;}
        else if(i<8192){if(i/4096==i%2 && (i%4096)/2048==(i%4)/2 && (i%2048)/1024==(i%8)/4 && (i%1024)/512==(i%16)/8 && (i%512)/256==(i%32)/16 && (i%256)/128==(i%64)/32) q=1;}
        else if(i<16384){if(i/8192==i%2 && (i%8192)/4096==(i%4)/2 && (i%4096)/2048==(i%8)/4 && (i%2048)/1024==(i%16)/8 && (i%1024)/512==(i%32)/16 && (i%512)/256==(i%64)/32 && (i%256)/128==(i%128)/64) q=1;}
        else if(i<32768){if(i/16384==i%2 && (i%16384)/8192==(i%4)/2 && (i%8192)/4096==(i%8)/4 && (i%4096)/2048==(i%16)/8 && (i%2048)/1024==(i%32)/16 && (i%1024)/512==(i%64)/32 && (i%512)/256==(i%128)/64) q=1;}
        else if(i<65536){if(i/32768==i%2 && (i%32768)/16384==(i%4)/2 && (i%16384)/8192==(i%8)/4 && (i%8192)/4096==(i%16)/8 && (i%4096)/2048==(i%32)/16 && (i%2048)/1024==(i%64)/32 && (i%1024)/512==(i%128)/64 && (i%512)/256==(i%256)/128) q=1;}
        else if(i<131072){if(i/65536==i%2 && (i%65536)/32768==(i%4)/2 && (i%32768)/16382==(i%8)/4 && (i%16384)/8192==(i%16)/8 && (i%8192)/4096==(i%32)/16 && (i%4096)/2048==(i%64)/32 && (i%2048)/1024==(i%128)/64 && (i%1024)/512==(i%256)/128) q=1;}
        else if(i<262144){if(i/131072==i%2 && (i%131072)/65536==(i%4)/2 && (i%65536)/32768==(i%8)/4 && (i%32768)/16384==(i%16)/8 && (i%16384)/8192==(i%32)/16 && (i%8192)/4096==(i%64)/32 && (i%4096)/2048==(i%128)/64 && (i%2048)/1024==(i%256)/128 && (i%1024)/512==(i%512)/256) q=1;}
        else if(i<524288){if(i/262144==i%2 && (i%262144)/131072==(i%4)/2 && (i%131072)/65536==(i%8)/4 && (i%65536)/32768==(i%16)/8 && (i%32768)/16384==(i%32)/16 && (i%16384)/8192==(i%64)/32 && (i%8192)/4096==(i%128)/64 && (i%4096)/2048==(i%256)/128 && (i%2048)/1024==(i%512)/256) q=1;}
        else if(i<1048576){if(i/524288==i%2 && (i%524288)/262144==(i%4)/2 && (i%262144)/131072==(i%8)/4 && (i%131072)/65536==(i%16)/8 && (i%65536)/32768==(i%32)/16 && (i%32768)/16384==(i%64)/32 && (i%16384)/8192==(i%128)/64 && (i%8192)/4096==(i%256)/128 && (i%4096)/2048==(i%512)/256 && (i%2048)/1024==(i%1024)/512) q=1;}
        if(p==1 && q==1) sum+=i;
    }
    printf("%d\n",sum);
    return 0;
}

Одно из решений с форума http://projecteuler.net/problem=36 - проверка числа и бинарного числа на палиндромность.
И комментарий к этому решению: "At last found a small mistake in the code.."

Запостил: Noname01 Noname01, (Updated )

Комментарии (4) RSS

  • Настоящий китайский код, хорошо зделали. Великий Мао одобряет.
    Ответить
  • Он выделяет биты делением на степени двойки? Убить.
    Я знаю, что компилтор заменит, но это же хуже читается.
    Ответить

Добавить комментарий

Из-за тебя ушел bormand, guest!

    А не использовать ли нам bbcode?


    8