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

0

  1. 1
  2. 2
int i=8, a1, a2;
for (a1=a2=1; i>2; a1=(a2+=a1)-a1) i--;

Вычисление i-го числа из ряда Фиббоначи.
Ответ в а2.
ЗЫ. Эта прога съела мозг учителя в институте. Рекомендую ;)

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

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

  • прога из серии "я знаю что в циклах в c/c++ можно писать всякую эзотерическую поебень"
    -1
    Ответить
  • Гость-говно:
    А по-моему, красивее
    for (a1=a2=1; i>2; a1+=a2+=a1)i-=2;
    нечетные в a1, четные в a2.
    [quote=Говногость]прога из серии "я знаю что в циклах в c/c++ можно писать всякую эзотерическую поебень"
    -1[/quote]
    По-моему, нормальное использование возможностей языка. Нафиг писать сложнее, когда и так все ясно?
    Ответить
  • Йа:
    Студент - молодец, преподавателя - сад, коментаторов, которые наезжают на код - в биореактор. Нормальный код, читается на раз, кто не знает элементарных операций и их приоритетов - пусть читают c++ для школьнеГов.
    Ответить
  • Михаил:
    [quote=Йа]Нормальный код, читается на раз, кто не знает элементарных операций и их приоритетов - пусть читают c++ для школьнеГов.[/quote]
    почитайте Макконнелла штоле, нешкольнег, прежде чем эдакую хуйню писать
    Ответить
  • Ггггг:
    с вводом с консоли и выводом на экран
    for (int a1 = 1, a2 = 1,  i = scanf_s("%d",&i) + i-1; (i--)>2; a1=(a2+=a1)-a1 , (i==2)? printf_s("Result = %d \n", a2):NULL ) ;
    Ответить
  • К О:
    на язык brainfuck не смотрели, он вам понравиться. я гарантирую это
    Ответить
  • для вуза - отлично, хотя стоит накрутить и побольше.
    Ну а если хотя бы даже для себя пишешь, то такого лучше избегать
    Ответить
  • Если скорость больше чем у "разжёванного" цикла, то для библиотечной документированной функции вполне себе сойдёт. Для обычных проектов слишком закручено
    Ответить
  • Чистый С++:
    #include <iostream> 
    int main() { for(int a1 = 0, a2 = 1; !(a2 & (1 << 31)); a2 += (a1 += a2), std::cout << a1 << std::endl << a2 << std::endl); return 0; }
    Ответить
  • такое чувство что всякие люди, которые кричат "гениально" злоупотребляют веществами, ломать мозг хорошо когда нечем занятся, когда ипшешь большой проект и там куча таких вот штук это не то слово что зло
    Ответить
  • int FibonacciReccurent(const double Index){
    double mIndex = Index + 1;
    double alpha_1_Root = pow( 1.618035, mIndex );
    double alpha_2_Root = pow( -0.618035, mIndex );
    return 0.4472132 * ( alpha_1_Root - alpha_2_Root );
    }

    Да, я школоло.
    Но не лучше ли так, пусть и с ворнингом, если нужна библиотечная функция?
    Макконнелла прочитал, изотерикой не занимаюсь.
    А вообще для универа считал вот так -

    int Fibonacci(int const lastIndex)
    {
    int a = 1; // 0 index
    int b = 1; // 1 index
    int temp = 0;
    for ( int i = 1; i < lastIndex; i++ ){
    temp = a;
    a = b;
    b += temp;
    }
    return b;
    } //yes, variable names liek a,b,temp are gay.
    Ответить
  • За такой код в любой приличной конторе подарят много-много дюлей.
    Ответить
  • Покороче:
    int n = 8, a1, a2;
    for (a1=a2=1; n-->0; printf("n = %d\n", a2-(a1=(a2+=a1)-a1)));
    Ответить
  • А вот так вроде бы и коротко, и понятно:
    for(a1=a2=1; i>2; i--){
    	a2+=a1;
    	a1=a2-a1;
    }
    Ответить
  • Выглядит элегантно, но нахуя выебываться - я не понимаю, компилятор все равно соберет точно также, как и кучу других аналогичных вариантов. Зато если продолжать следовать такому стилю говнокода то рано или поздно нтакнешься на UB шо сам не поймешь откуда что растет. В общем главное преимущество ЯП высокого уровня - простота сопровождения идет нахуй.
    Разница между реализациями выплыветкогда пинами контроллера нужно будет от балды подергать, ВЧ-синтезатор на атмеге (к чему она вообще не предназначена) реализовать или впихнуть программу управления энергосистемой в 2кб флеша на какой-нить нищебродский 470, тут да, каждый изъебывается сколько может, мереются размерами кода и количеством тактов, до тех пор пока не столкнутся с задачей по сложнее, например, по типу синтеза регулятора реактивного двигателя, вот тогда да, тогда все засовыают свою килобайты пиносв обратно в штаны и работают как приличные люди.

    Вообщем такой же бред, как использование рекурсии за пределами рекурентных функций (типа синтеза фильтра Калмана). Элегантно, но нахуй никому не нужно, а может даже и вредно.
    Ответить
  • А у меня Фибоначчи считается так:
    Recurrence(Algo::Op::Add<int>, 1, 1).Drop(7).Front()
    Если я только с индексом не ошибся.
    Ответить

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

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

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


    8