PAT B1022 D进制的A+B (20 分)

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

输入格式:

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

输出格式:

输出 A+B 的 D 进制数。

输入样例:

123 456 8

输出样例:

1103
#include <cstdio>
#include <iostream>
//const int MAXN = 100000;
//int score[MAXN] = { 0 };
int main() {
    int a, b, c, d;
    scanf("%d%d%d", &a, &b,&d);
    c = a + b;
    int ans[31] = { 0 }, num = 0;
    do {
        ans[num++] = c % d;
        c = c / d;
    } while (c != 0);
    for (int i = num-1; i >=0; i--) {
        printf("%d", ans[i]);
    }
    //printf("%f", a);
    system("pause");
    return 0;
}

注意点:一个整数的D进制就是他不断取余,整除的过程,叫除基取余法。一个P进制转换成Q进制就是先把P转换到10进制,再用除基取余法转到Q进制。

原文地址:https://www.cnblogs.com/tccbj/p/10359593.html

时间: 2024-08-04 02:01:01

PAT B1022 D进制的A+B (20 分)的相关文章

PAT-进制转换-B1022 D进制的A+B (20分)

题目描述: 输入两个非负10进制整数A和B(≤230-1),输出A+B的D(1<D≤10)进制数. 输入格式: 输入在一行中依次给出3个整数A.B和D. 样例: 输入:123 456 8 输出:1103 思路: 先计算A+B的值,然后再将其转换为D进制.可使用“除基取余法”. 注意点: A+B的范围在int范围内 最好使用do···while语句.使用while语句要特判A+B等于0的情况 存储A+B%D的数组要从高位到低位进行输出 代码: 1 #include<iostream> 2

PTA乙级 (1022 D进制的A+B (20分))

1022 D进制的A+B (20分) https://pintia.cn/problem-sets/994805260223102976/problems/994805299301433344 解题思路:本题说了a和b值均小于等于2的30次方减一,(2^30-1==1 073 741 823),而整型int占四字节,三十二比特,范围为[-2^31~2^31-1];本题还要考虑若a和b值均为0,则直接输出0. #include <iostream> #include <cstdio>

PAT 1022. D进制的A+B (20)

输入两个非负10进制整数A和B(<=230-1),输出A+B的D (1 < D <= 10)进制数. 输入格式: 输入在一行中依次给出3个整数A.B和D. 输出格式: 输出A+B的D进制数. 输入样例: 123 456 8 输出样例: 1103 要特别注意a+b=0的情况 1 #include<stdio.h> 2 #include<string.h> 3 #include<math.h> 4 #include<stdlib.h> 5 in

1022 D进制的A+B (20分)

#include <iostream> using namespace std; int main() { long long int a,b,c; int d,i=0; int num[32]; cin>>a>>b>>d; c=a+b; if(c==0) { cout<<"0"<<endl; return 0; } while(c>0) { num[i]=c%d; c=c/d; i++; } for(int

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

1022. D进制的A+B (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 输入两个非负10进制整数A和B(<=230-1),输出A+B的D (1 < D <= 10)进制数. 输入格式: 输入在一行中依次给出3个整数A.B和D. 输出格式: 输出A+B的D进制数. 输入样例: 123 456 8 输出样例: 1103___________________________ 注意 要用long

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

1022. D进制的A+B (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 输入两个非负10进制整数A和B(<=230-1),输出A+B的D (1 < D <= 10)进制数. 输入格式: 输入在一行中依次给出3个整数A.B和D. 输出格式: 输出A+B的D进制数. 输入样例: 123 456 8 输出样例: 1103 乙级题都是细节题 思路:看这数据范围,得用longlong,然后写个函数表

pat 1116 Come on! Let&#39;s C(20 分)

1116 Come on! Let's C(20 分) "Let's C" is a popular and fun programming contest hosted by the College of Computer Science and Technology, Zhejiang University. Since the idea of the contest is for fun, the award rules are funny as the following: 0

B1022 D进制的A+B

1 /* 2 题目描述 3 输入两个非负十进制整数A和B(<=2^30-1)以及D(进制数), 4 输出A+B的D(1 < D <= 10)进制数. 5 6 输入格式 7 在一行中依次给出三个整数A, B和D(进制数). 8 9 输出格式 10 A+B的D进制数 11 12 输入样例 13 123 456 8 14 15 输出样例 16 1103 17 18 思路 19 先计算A+B(此时为十进制),然后把结果转换为D进制, 20 而十进制转换为D进制的过程可以直接进行"除基取

PAT 1022 D进制的A+B

输入两个非负 10 进制整数 A 和 B (≤),输出 A+B 的 D (1)进制数. 输入格式: 输入在一行中依次给出 3 个整数 A.B 和 D. 输出格式: 输出 A+B 的 D 进制数. 输入样例: 123 456 8 输出样例: 1103 1 #include <cstdio> 2 int main(void){ 3 int a,b,c; 4 scanf("%d%d%d",&a,&b,&c); 5 int sum1; 6 int sumc[