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

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

输入格式:

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

输出格式:

输出 A+B 的 D 进制数。

输入样例:

123 456 8

输出样例:

1103

#include<iostream>
using namespace std;
int main(){
    int a,b,d,i;
    cin>>a>>b>>d;
    int n=a+b;
    int p[31];//a和b相加最多是2的30次方,化为二进制是30位。
    for(i=0;n>=d;i++){
        p[i]=n%d;
        n=n/d;
    }
    p[i]=n;
    for(;i>=0;i--){
        cout<<p[i];
    }
}

原文地址:https://www.cnblogs.com/fromzore/p/9556319.html

时间: 2024-11-10 19:50:43

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

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>

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,然后写个函数表

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 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <iostream> 4 #include <string.h> 5 #include &

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)(20 分)

2018-07-28 20:24:39 输入两个非负10进制整数A和B(<=2^30^-1),输出A+B的D (1 < D <= 10)进制数. 输入格式: 输入在一行中依次给出3个整数A.B和D. 输出格式: 输出A+B的D进制数. 输入样例: 123 456 8 输出样例: 1103 #include<stdio.h> int main(){ int a,b,d,sum,j; int i=0; int s[31]={0}; //此处犯得错误是数组的名称不能和你所定义的变量

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

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

#include<stdio.h> #include<stdlib.h> int main() { int a,b,D; scanf("%d%d%d",&a,&b,&D); int sum=a+b; if(sum==0) //[caution]特判0的时候 { printf("0"); return 0; } int arr[35]; //不需要用char然后memset,原始是什么都无所谓,都会被冲掉 int i=0

1022. D进制的A+B

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 1 #include<stdio.h> 2 #include&