PAT 乙级 1022(D进制的A+B)

PAT 乙级 1022

  • 题目要求
  • 代码
  • 思路

题目要求

输入两个非负 10 进制整数 A 和 B (≤ 2 30 2^{30} 230−1),输出 A+B 的 D (1

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

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

输入样例:
123 456 8

输出样例:
1103

代码

#include
using namespace std;
int main()
{
    int a,b,d,i=0,tmp;
    int result[1000];
    cin >> a >>b >>d;
    tmp = a+b;
    while(tmp!=0)
    {
        result[i++] = tmp%d;
        tmp = tmp/d;
    }
    for(int j=i-1;j>=0;j--)
    {
        cout<<result[j];
    }
    if(i==0) cout<<"0";
    return 0;
}

思路

这道题考察十进制转n进制的方法。
PAT 乙级 1022(D进制的A+B)_第1张图片
以上图为例,简单讲就是倒序输出余数。
如此,便成!

你可能感兴趣的:(PAT)