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进制的过程可以直接进行“除基取余法”。
21 */
22
23 #include <iostream>
24 #include <stdio.h>
25 using namespace std;
26
27 int main()
28 {    int a,b,d;
29     scanf("%d%d%d",&a,&b,&d);
30     int sum=a+b;
31     int ans[31],num=0;    //ans存放D进制的每一位
32     do{                    //进制转换
33         //t=sum%d;
34         //printf("%d",t);
35         ans[num++]=sum%d;
36         sum/=d;
37     } while (sum!=0);  //num最终等于4
38     for(int i=num-1;i>=0;i--)   //从高位到低位进行输出
39         printf("%d",ans[i]);
40     return 0;
41 }
时间: 2024-11-08 03:55:38

B1022 D进制的A+B的相关文章

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,

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】B1022 D进制的A+B(20 分)

#include<stdio.h> int main() { int A,B,D; scanf("%d%d%d",&A,&B,&D); int he=A+B,Djinzhi[32],num=0; do{ Djinzhi[num++]=he%D; he/=D; }while(he!=0); for(int i=num-1;i>=0;i--) { printf("%d",Djinzhi[i]); } return 0; } 原文

入门模拟——(进制转换)B1022.D进制的A+B

#include <bits/stdc++.h> #include<math.h> using namespace std; const int MAX_LEN = 100005; const int MAX_D = 31; int main(){ int a,b,n; cin>>a; cin>>b; int temp = a+b; cin>>n; int result[MAX_D]; int num = 0; do{ result[num++]

PAT/进制转换习题集

B1022. D进制的A+B (20) Description: 输入两个非负10进制整数A和B(<=230-1),输出A+B的D (1 < D <= 10)进制数. Input: 输入在一行中依次给出3个整数A.B和D. Output: 输出A+B的D进制数. Sample Input: 123 456 8 Sample Output: 1103 1 #include <cstdio> 2 3 int main() 4 { 5 int a, b, d; 6 scanf(&q

计算机中的进制

在学习编程的过程中,经常见到二进制,十进制,十六进制,到底进制表示什么意思呢?进制,字面意思,前进的制度,在数字方面,就是数字前进的制度,数字怎么向前进,那就是进位,我们在做加法运算的时候都会用到进位,8+3,我们会写个1,然后向前进一位,数数的时候更是如些,1,2,3......10, 我们不会再向下数11,12 ..... ,而是在心中放一个1, 然后再1,2,3,4,......10, 到10之后, 我们也不会向下数,而是在心中再记一个1,那么心中的数字就是2了,继续向下数,1,2,3,数

数组中hashCode就是内存地址,以及汉字幻化为16进制或10进制

int[] arr4={1,2,3,4,5}; System.out.println("arr4: "+arr4); System.out.println("arr4.hashCode: "+arr4.hashCode()); //将hashCode值转化为16进制的两种方式 System.out.println(Integer.toString(366712642,16));//将整数转化为16进制的数为:15db9742 System.out.println(I

进制、类型转换、提升

进制 java支持四种进制表示 进制 示例 前缀 备注 十进制 int x = 10;     二进制 int x = 0b10; 0b或0B 计算机储存 八进制 int x = 010; 0 兼容以前程序 十六进制 int x = 0xceaf 0x或0X 0~9,a~f 细节: 一个十六进制位可以表示四个二进制位 当数值位数较多时,可以使用下划线对数字进行隔开,例:1_230_456 字面常量 整数:字面常量为int型,如果要表示long类型的字面常量,使用L或l做后缀,建议使用L,因为字母

1813. M进制数问题

1813. M进制数问题 Constraints Time Limit: 1 secs, Memory Limit: 32 MB Description 试用 C++的类来表示一般进制数. 给定 2 个n位m进制整数A和B,计算m进制数整数P = A / B (向下取整)与 Q = A % B的值. Input 输入包含多个测试点.第一行为一个整数T,表示测试点数. 对于每个测试点第 1 行是进制 m .第 2 行和第 3 行分别给出 m 进制整数 A 和 B. 所有 m 进制数的10进制表示均