Кресты / Говнокод #24892 Ссылка на оригинал

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
std::size_t fib(const std::size_t index) {
  if (index < 3)
    return !!index;

  std::size_t  f2 = 1; // f(n - 2)
  std::size_t  f1 = 1; // f(n - 1)
  std::size_t result = 0;
  for (std::size_t i = 2; i < index; ++i)
  {
    result = f1 + f2;
    f1 = f2;
    f2 = result;
  }

  return result;
}

Что Clang вытворяет с несчастной функцией Фибоначчи?
https://godbolt.org/z/2SFUm0

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

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

    • Ничего не понял. Поэтому я за "PHP". И влепил минус бляди.
      Ответить
        • "PHP" работает не только на "Intel x86". Его можно собрать на "Solaris", "Linux", "OpenBSD" и на прочих "Unix"-подобных системах на любом процессоре. Именно поэтому я за "PHP".
          Ответить
          • >>PHP" работает не только на "Intel x86". Его можно собрать на "Solaris", "Linux", "OpenBSD"

            а так же "AMD", ".NET", "Oracle", XBOX, Windows...
            Ответить
            • Кстати, какой компьютер лучше: "Windows" или "Pentium"? Мне нужно, чтобы с жидкокристаллическим "Word"ом было.
              Ответить
              • Лучше всего PHP, на нем Дуров сделал свое состояние!
                Ответить
                • Без сарказма, заметим. "PHP" удобен тем, что, в отличие от требущих влажно-командной работы "Java" и "Python", на нём можно программировать воднером весьма и весьма годненькие проекты, в то время, как вам, даунам, требуются "тимлиды", тестеры (ибо чуть что - "Java" тут же потечёт памятью) и прочий помойный сброд.
                  Ответить
                  • еще им нужны дебагеры, профайлеры, IDE, континиус интегрейшен, юнит тесты, вершен контроль, документация, API, и черта лысого вступе

                    зачем? Ведь в Notepad++ на PHP можно в одиночку написать любой сайт без всего этого
                    Ответить
          • Ты предлагаешь гOBHY учить ассемблеры всех этих платформ? Он же потухнет.
            Ответить
  • Да это восстание машин...

    С -O1 чуть получше.
    Ответить
      • Вспомнил, как преподы, воспитанные на старом Фортране (который не использовал стек и не умел рекурсивно вызывать функции; новый-то умеет, у него ABI как у сишки), били по рукам за рекурсивные вызовы: «Ко-ко-ко, так нельзя! Функция не может вызвать сама себя!»
        Ответить
      • Кстати, ветвление — это жопа. Потеря пирфоманса из-за того, что fib каждого номера, кроме последнего, будет вычисляться несколько раз.

        Нужно в области глобальных переменных завести кэш для значений этой функции, чтобы не вычислять повторно.
        Ответить

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

Помни, guest, за тобой могут следить!

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


    8