HDOJ 2100 Lovekey
2017-10-12 17:03
204 查看
HDACM2100
此题别被题目忽悠去把输入的二十六进制数转换成十进制然后去计算,然后把十进制转换成二十六进制。如果非要转换那就得调用大数的方法去做。
此题别被题目忽悠去把输入的二十六进制数转换成十进制然后去计算,然后把十进制转换成二十六进制。如果非要转换那就得调用大数的方法去做。
import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNext()) { String a = sc.next(); String b = sc.next(); char[] A = a.toCharArray(); char[] B = b.toCharArray(); char[] C = twentySixAdd(A, B); boolean boo = true; for (char d : C) { if (boo&&d=='A'||d=='\0') { continue; } System.out.print(d); boo = false; } System.out.println(); } } public static char[] twentySixAdd(char[] a,char[] b){ char[] c = new char[(a.length>b.length?a.length:b.length)+1]; char m = 0; for (int i = c.length-1; i>0; i--) { if (c[i]=='\0') { c[i] = 'A'; } if (i>c.length-(a.length<b.length?a.length:b.length)-1) { char s = (char)(c[i]+a[i-(c.length-a.length)]+b[i-(c.length-b.length)]-'A'-'A'); if (s>'Z') { c[i] = (char) (s-'Z'-1+'A'); c[i-1] = 'B'; }else{ c[i] = s; } }else { if (a.length>b.length) { char s = (char) (c[i]+a[i-(c.length-a.length)]-'A'); if (s>'Z') { c[i] = (char) (s-'Z'-1+'A'); c[i-1] = 'B'; }else{ c[i] = s; } }else { char s = (char) (c[i]+b[i-(c.length-b.length)]-'A'); if (s>'Z') { c[i] = (char) (s-'Z'-1+'A'); c[i-1] = 'B'; }else{ c[i] = s; } } } } return c; } }
相关文章推荐
- HDOJ 2100 Lovekey
- 【大数问题】 HDOJ 2100 Lovekey
- 大数问题之 Lovekey hdoj 2100
- hdoj2100-Lovekey(26进制的加法)
- hdoj 2100 Lovekey 【另类A+B】
- ACM--26进制加法--HDOJ 2100--Lovekey--大数--字符串处理
- HDU 2100-Lovekey
- hdu-2100-Lovekey
- hdu 2100 Lovekey
- HDU 2100 Lovekey
- hdoj2100 Graveyard Design
- 杭电ACM 2100 Lovekey
- hdu-2100-lovekey
- HDU 2100 Lovekey
- hdu 2100 Lovekey(进制下的高精度加法)
- HDU 2100 LoveKey
- 大数问题HDOJ2100
- HDOJ 2100
- hdu 2100 lovekey
- hdu 2100 lovekey