输入两个非负10进制整数A和B(<=230-1),输出A+B的D (1 < D <= 10)进制数。
输入格式:
输入在一行中依次给出3个整数A、B和D。
输出格式:
输出A+B的D进制数。
输入样例:
123 456 8
输出样例:
1103
1 package com.hone.basical; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 import java.util.Scanner; 6 7 /** 8 * 原题目:https://www.patest.cn/contests/pat-b-practise/1022 9 * @author Xia 10 * 超时版本 11 * 12 */ 13 14 public class basicalLevel1022DecimalAB{ 15 public static void main(String[] args) { 16 Scanner s = new Scanner(System.in); 17 long a = s.nextLong(); 18 long b = s.nextLong(); 19 int D = s.nextInt(); 20 double c = a + b; 21 List<Double> dnum = new ArrayList<>(); 22 double x = 0; 23 while (c!=0){ 24 x = c%D; 25 dnum.add(x); 26 c= (int)(c/D); 27 if (c<D) { 28 dnum.add(c); 29 break; 30 } 31 } 32 for (int i = dnum.size()-1; i >= 0; i--) { 33 System.out.print((int)(dnum.get(i)/1.0)); 34 } 35 } 36 }
1 package com.hone.basical; 2 3 import java.util.Scanner; 4 5 /** 6 * 原题目:https://www.patest.cn/contests/pat-b-practise/1022 7 * @author Xia 8 * 核心:做了这么多题目,建议所有的进制转换都可以字符串来承接最后转化的效果 9 */ 10 11 public class basicalLevel1022DecimalABImprove{ 12 public static void main(String[] args) { 13 Scanner s = new Scanner(System.in); 14 long a = s.nextLong(); 15 long b = s.nextLong(); 16 int D = s.nextInt(); 17 long c = a + b; 18 String num = ""; //处理成字符串是这种问题常见的方式,因为更加容易拼接 19 if (c == 0) { 20 num = num+"0"; 21 }else { 22 while (c!=0) { 23 int ref = (int) (c%D); 24 num = ref+num; 25 c = c/D; 26 } 27 } 28 System.out.println(num); 29 } 30 }