- 1
- 2
- 3
- 4
- 5
- 6
- 7
int SUM(int A, int B)
{
if (0 == A) return B;
if (0 == B) return A;
return (1 + (SUM(A, B - 1) + SUM(A - 1, B)) / 2);
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+1122.2
int SUM(int A, int B)
{
if (0 == A) return B;
if (0 == B) return A;
return (1 + (SUM(A, B - 1) + SUM(A - 1, B)) / 2);
}
рекурсивное вычисление суммы двух чисел.
При коммерческом программировании иногда, кстати, специально оставляют места в программах, которые потом можно на халяву оптимизить.
ничего говнокодерского здесь нет. ты бы еще предложил за место if case использовать
мутанты.
особенно сравнение с 0 порадовало :)
Граждане комментаторы, да вы ёбнулись.
Если это не олимпиадная задача, то написавшему такое надо сделать что-то крайне нехорошее.
Что-то этот код больше на Си похож, чем на С++. Лучше использовать вот такой код:
P.S.: Кстати говоря, программа компилилась аж целых 7 секунд о_0
xaionaro@bellatrix:~$ time g++ t.cpp
real 0m7.041s
user 0m6.624s
sys 0m0.260s
xaionaro@bellatrix:~$ ./a.out
s1=11, s2=7
старинное программерское развлечение "дважды два в тыщу строк"? :-)
Да вы долбаебы-говнокодеры! идите в переучивайтесь. никуя ведь не знаете, может задача спецефическая
код вполне годный.
кто больший говнокодер? тот кто наклал 7 строк или тот кто наклал аж 50 строк и при том это говно так же работает
Хороший код. Создан просто для того, чтобы попрактиковаться в рекурсивных методах. Суммирует только неотрицательные числа. :) 5+
Хотелось бы услышать комментарии К.О...
Хороший код, красивый.
Думаю, это просто высосанный из пальца пример рекурсии.
Дебильный пример, такое же исполнение, но знание рекурсии показывает.
Это очень похоже на то, что писалось в
Structure and Interpretation of Computer Programs aka SISP. Вобщем, это ЛИСП'овский прикол.
?
{
return (b)? sum(++a, --b): a;
}
while(a>0){a--;b++;}return b;
Или:
Общий случай сами ищите если кому нужно.
Всякие арифметики Пеано и кольца Гротендика вполне себе используются для вычислений на типах в Haskell'ах и обычных — в Coq'ах.
tilde — некая арифметическая операция, увеличивающее число на единицу.
(define (+ a b)
(if (= a 0)
b
(inc (+ (dec a) b))))