A+B问题的异常解法
先%XZZ为敬
http://www.cnblogs.com/xzz_233/p/a-plus-b-problem.html
万恶之源:https://www.luogu.org/discuss/show?postid=22423
洛谷上大佬云集,各种千奇百怪的A+B解法都有
这里也整理一些
1.只用一个变量跑A+B
可以把一个long long拆成2个int
你咋不用string呢
用指针可完成
代码蒯上
#include<iostream>
using namespace std;
long long a;
int main()
{
scanf("%d%d",(int*)(&a),(int*)(&a+1));
printf("%d\n",*((int*)&a)+*((int*)(&a+1)));
return 0;
}
然而被某大佬教育用快读
代码蒯上
#include<iostream>
using namespace std;
int gotcha(){register int a=0;cin>>a;return a;}
int main(){cout<<gotcha()+gotcha();}
2.不用+-*/跑A+B
用位运算
又没说&|^~不能用!
代码蒯上
#include<iostream>
using namespace std;
int a,b,c;
int main()
{
cin>>a>>b;
while(a&b)c=a^b,b=(a&b)<<1,a=c;
cout<<(a|b);
return 0;
}
3.一行解决A+B
入门缩行题
int a,b;int main(){scanf("%d%d",&a,&b);printf("%d",a+b);}
以后想到了新奇的做法继续更……
Ps.为什么这文章阅读15了