题目描述
输入两个非负 10 进制整数 A 和 B (≤2^30−1),输出 A+B 的 D (1<D≤10)进制数。 输入格式: 输入在一行中依次给出 3 个整数 A、B 和 D。
输出格式: 输出 A+B 的 D 进制数。
输入样例:
123 456 8
输出样例:
1103
思路分析、
下面这张图演示的是辗转相除法将十进制转换为二进制
不断对十进制数用D辗转相除所得余数逆序即为要转换的进制数
AC代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
long a,b,d,n;
int x[1000]={0};
cin>>a>>b>>d;
n=a+b;
if(n==0)//注意,这是一个特殊的测试点!
{
cout<<0;
return 0;
}
int i=0;
while(n!=0)
{
x[i++]=n%d;
n/=d;
}
while(i--)
cout<<x[i];
return 0;
}
总结感悟
锲而不舍,金石可镂
先睡了,养精蓄锐,明天再接着刷题!