当前位置: 代码迷 >> 综合 >> 【PAT_B】1022 D进制的A+B(c/c++)
  详细解决方案

【PAT_B】1022 D进制的A+B(c/c++)

热度:37   发布时间:2023-12-29 16:02:52.0

题目描述

输入两个非负 10 进制整数 A 和 B (≤2^?30?? ?1),输出 A+B 的 D (1<D≤10)进制数。

输入格式:

输入在一行中依次给出 3 个整数 A、B 和 D。

输出格式:

输出 A+B 的 D 进制数。

输入样例:

123 456 8

输出样例:

1103

思路

A+B最大为231?22^{31}-2231?2,2进制时得到的数字位数最多为31位

代码

#include<bits/stdc++.h>using namespace std;int main(){
    int a,b,d;cin>>a>>b>>d;int c=a+b;int fig[32],i=0;do{
    fig[i]=c%d;c=c/d;i++;}while(c);for(int j=i-1;j>=0;j--){
    cout<<fig[j];}return 0;
}