1. Си / Говнокод #9920

    +140

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    long long int temp;
    		temp=a-b;
    		if (temp<0) temp=temp*(-1);
    .....
    r = b*(2^g);

    Из работ студентов.
    Первый фрагмент - взятие по модулю.
    Второй - вызвал вопрос "почему неправильно работает возведение в степень?".

    Запостил: startrack, 11 Апреля 2012

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

    • по первому можно короче
      if ( temp < 0 ) temp = -temp;
      по второму "Что бы возвести число b в степень g, нужно число b умножить само на себя g-раз.".
      Ответить
    • В бейсике это было возведением в степень, да.
      Взятие по модулю неплохо делается на ассемблере, без условий и переходов.
      Ответить
      • >В бейсике это было возведением в степень, да.
        Только у мудаков. Можно было завести массив степеней.
        Ассиметричное шифрование, наверняка. Сверху Нод по Эвклиду. Снизу RSA.
        Ответить
      • cdq по скорости несильно уходит от условий.
        Ответить
    • long long time, ago;
      Ответить

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