【BZOJ1000】【POJ1000】【HDU1000】【Vijos P1000】A+B Problem

来源:互联网 发布:淘宝旺旺名字怎么复制 编辑:程序博客网 时间:2024/05/19 16:35

A+B Problem ,全世界除 "hello, world" 和 POJ3800/3801... 外最经典的信息学题目,没有之一!

但是同样是一道题,要求在代码中不出现“+”、“-”、“*”、“/”、“%”五种运算符,我们又能怎样解决?

枚举每一位,用变量 t 记录A和B在这个位的状态和之前是否有进位,并用位运算更新答案。

Pascal的同学们请路过,祝P党早日转C++!

A+B without "+" "-" "*" "/" "%" C++代码:

#include <cstdio>#include <iostream>using namespace std;int a,b,c;int main(){cin>>a>>b;for(int i=1,t;i<=1<<29;i<<=1){t=1;if(a&i)t<<=1;if(b&i)t<<=1;if(c&i)t<<=1;switch(t){case 2:c|=i; break;case 4:c|=i<<1; c=~c; c|=i; c=~c; break;case 8:c|=i; c|=i<<1; break;}}cout<<c<<endl;return 0;}

0 0
原创粉丝点击