PAT1022. 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

注意:D进制,使用栈时应注意命名空间。

 1 #include<stdio.h>
 2 #include<stack>
 3 using namespace std;
 4 /*
 5 char str1[35];
 6 char str2[35];
 7 void Reverse(char str1 [])
 8 {
 9     char str[35];
10     for(int i=0;i<strlen(str1);i++)
11     {
12          str[i]    =str1[i];
13     }
14     for(int i=0;i<strlen(str1);i++)
15     {
16         str1[strlen(str1)-1-i]=str[i];
17     }
18 }*/
19 int main(int argc, char** argv)
20 {
21     int A,B,D;
22     stack<int> S;
23     //将两个数逆序
24     scanf("%d%d%d",&A,&B,&D);
25     int sum=A+B;
26     while(sum>=D)
27     {
28         int reminder=sum%D;
29         sum=sum/D;
30         S.push(reminder);
31     }
32     S.push(sum);
33     while(!S.empty())
34     {
35         printf("%d",S.top());
36         S.pop();
37     }
38
39     return 0;
40 }

时间: 2024-08-14 20:23:25

PAT1022. D进制的A+B (20)的相关文章

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

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)

输入两个非负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 &

进制转换——7月20日

一.进制转换 十进制 有10个基数:0,1,2,3,4,5,6,7,8,9 二进制 有2个基数:0,1 八进制 有8个基数:0,1,2,3,4,5,6,7 十六进制 有16个基数:0--9,A,B,C,D,E,F(A=10,B=11,C=12,D=13,E=14,F=15) 二.十进制与其他进制之间的转换 (一)十进制与二进制 1.十进制转二进制 十进制数除以2,除商取余,从后至前反向写出,即为二进制数 例:36除以2得出的商依次为:18   9   4   2   1 余数依次为:0   0

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