先%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了