链接:https://ac.nowcoder.com/acm/contest/19306/1010
来源:牛客网
题目描述
给定两个十进制整数 :
A,B
你需要把它们的二进制形式以十进制的运算法则相加输出结果。
例如:
A=3,B=2 的时候,
A 的二进制表示是 :
11
B 的二进制表示是
10
你需要输出答案为 :
21
输入描述:
一行两个十进制整数:
A,B
输出描述:
一行一个整数,表示相加的结果。
示例1
输入
2 3
输出
21
示例2
输入
5 4
输出
201
解决方案
#include<stdio.h>
int main()
{
int a,b;
scanf("%d %d",&a,&b);
int aa[20]={0},bb[20]={0};
int i=0,j=0;
while(a)//十进制数得到二进制数的方法
{
aa[i++]=a%2;
a/=2;
}
while(b)
{
bb[j++]=b%2;
b/=2;
}
int c[20]={0};
int k,x;
if(i>j)//比较位数大小
k=i;
else
k=j;
for(x=k-1;x>=0;x--)//从位数大的位置开始加
printf("%d",aa[x]+bb[x]);//数位之和就是结果
return 0;
}