- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
#include <stdio.h>
int main()
{
for (int x; scanf("%d", &x);) {
#define x x += x
x & (x-1);
printf("%d\n", x);
}
return 0;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+1
#include <stdio.h>
int main()
{
for (int x; scanf("%d", &x);) {
#define x x += x
x & (x-1);
printf("%d\n", x);
}
return 0;
}
https://ideone.com/SxgTL0
-3 -28
-2 -20
-1 -12
0 -4
1 4
2 12
3 20
Ничо нипанятна...
yet_another_one_shit 01.05.2018 09:10 # 0
3oJIoTou_xyu 01.05.2018 10:11 # +2
yet_another_one_shit 01.05.2018 10:41 # 0
Тоже UB?
Даже если так, то в какой последовательности надо расположить действия, чтобы получились такие результаты?
bormand 01.05.2018 11:22 # +4
x += (x & (x += x - 1)), причём побочка от x += y сразу применилась.
Версия без UB:https://ideone.com/r30L9y
yet_another_one_shit 01.05.2018 11:42 # +3
Alexander 01.05.2018 22:39 # +1