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了


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM