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了

posted @ 2017-09-27 15:04  iot;  阅读(673)  评论(17编辑  收藏  举报
知识共享许可协议
年轻人,你需要更多的知识