UperFicial @ 2021-03-13 16:48:20
RT,窝真的菜死了/kk
这个 inline int plus(register int x,register int y){return !y?x:plus(x^y,(x&y)<<1);}
东东和这个 inline int plus(register int x,register int y){return x+y;}
哪个更快啊?
by _caiji_ @ 2021-03-13 16:49:51
实践出真知
递归常数应该会大一点吧
by w23c3c3 @ 2021-03-13 16:50:13
加法好像就是上面那玩意实现的,所以应该差不多
by szTom @ 2021-03-13 17:02:04
最快的: clang+O2
永远不要以为你比编译器懂得多
by 滑蒻稽 @ 2021-03-13 17:02:46
@w23c3c3 加法编译会成汇编的几句代码啊,不是上面那玩意吧.
by UperFicial @ 2021-03-13 17:03:05
@szTom az,好吧/fad
by ud2_ @ 2021-03-13 17:10:48
GCC 还是不够聪明,即使 -O3
也不把 !y ? x : plus(x ^ y, (x & y) << 1)
优化成 x + y
。
plus1(int, int):
movl %edi, %eax
testl %esi, %esi
je .L2
.L3:
movl %esi, %edx
andl %eax, %edx
xorl %esi, %eax
addl %edx, %edx
movl %edx, %esi
jne .L3
.L2:
ret
plus2(int, int):
leal (%rdi,%rsi), %eax
ret
by _caiji_ @ 2021-03-13 20:45:36
@sjx233_ 您这么强您去写一个啊/se
比如说判断质数换成 Miller-Rabin、快速幂、去掉={0}
等。
by gxxjqqiang @ 2021-03-16 17:13:17
e3cn
by CSP_zyh @ 2021-08-03 22:10:12
用c++解题很简单的