C++解决进制转换问题(除基取余法)

it2023-05-31  90

题目描述: 输入两个非负的十进制数A和B,输出A+B的D进制数。

输入格式: 在一行输入三个整数A,B和D。

输出格式: 输出A+B的D进制数。

思路: 我们首先要计算出A+B的值,然后再用除基取余法进行进制转换。 除基取余法: 设置一个数组ans[]用来存放D进制的每一位,然后用sum进行除于D进行取余操作,余数存在数组ans中。最后再将ans从高位往低位输出即可。

代码实现:

#include <iostream> using namespace std; int main() { int a,b,d; cin>>a>>b>>d; int sum=a+b; int ans[31],num=0; do{//除基取余法 ans[num++]=sum%d; sum=sum/d; }while(sum!=0); for(int i=num-1;i>=0;i--)//从高位输出 cout<<ans[i]; return 0; }

运行结果:

最新回复(0)