【2012百度之星资格赛】A:百度计算器的加法
-
时间限制:
- 1000ms 内存限制:
- 10000kB
-
描述
-
百度框计算中提供了计算器这个功能,模拟计算器中的复杂功能,我们最先需要解决的就是实现加法模块。今天就给你个机会,和百度计算器一样,计算一下十以内的加法吧。
输入
- 仅有一组数据,包含两个正整数,分别为a, b(0 <= a, b <= 10) 输出
- 一个正整数,暨输入a, b后对应的a+b的计算结果 样例输入
-
5 2
样例输出
-
7
- #include <stdio.h>
- #include <stdlib.h>
- int Add(int a,int b)
- {
- int jw=a&b;
- int jg=a^b;
- while(jw)
- {
- int t_a=jg;
- int t_b=jw<<1;
- jw=t_a&t_b;
- jg=t_a^t_b;
- }
- return jg;
- }
- int main(int argc, char* argv[])
- {
- int a,b,c;
- scanf("%d",&a);
- scanf("%d",&b);
- c=Add(a,b);
- printf("%d",c);
- return 0;
- }
这是一位博客主(见下面的网址)写的,我觉得这个算法是比较好的,利用位操作来代替一般的直接加法,效率要比较高。
参考来源:http://blog.csdn.net/tianshuai11/article/details/7616495