【大数问题】 HDOJ 2100 Lovekey
2014-09-02 12:44
369 查看
用java做还是不难的。。。
import java.util.Scanner; import java.math.BigInteger; import java.math.BigDecimal; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String a, b; char s[] = new char[205]; BigInteger ans, aa, bb; int len; while(scanner.hasNext()) { a = scanner.next(); b = scanner.next(); ans = BigInteger.ZERO; aa = BigInteger.ZERO; bb = BigInteger.ZERO; len = a.length(); s = a.toCharArray(); for(int i = 0; i < len; i++) { aa = aa.multiply(BigInteger.valueOf(26)); aa = aa.add(BigInteger.valueOf(s[i] - 'A')); } len = b.length(); s = b.toCharArray(); for(int i = 0; i < len; i++) { bb = bb.multiply(BigInteger.valueOf(26)); bb = bb.add(BigInteger.valueOf(s[i] - 'A')); } ans = aa.add(bb); s = new char[205]; len = 0; while(ans.mod(BigInteger.valueOf(26)) == BigInteger.ZERO && ans.compareTo(BigInteger.ZERO) > 0) { ans = ans.divide(BigInteger.valueOf(26)); s[len++] = 'A'; } while(ans.compareTo(BigInteger.ZERO) > 0) { aa = ans.mod(BigInteger.valueOf(26)); ans = ans.divide(BigInteger.valueOf(26)); s[len++] = (char)(aa.intValue() + 'A'); } for(int i = 0; i < len/2; i++) { char tmp = s[i]; s[i] = s[len-1-i]; s[len-1-i] = tmp; } if(len != 0) for(int i = 0; i < len; i++) System.out.print(s[i]); else System.out.println('A'); System.out.println(); } } }
相关文章推荐
- 大数问题之 Lovekey hdoj 2100
- 大数问题HDOJ2100
- Hdu 2100 Lovekey 模拟大数相加<进位转换..>
- 求 n! (大数问题)----------HDOJ1042
- 【大数问题】 HDOJ 5047 Sawtooth
- ACM--26进制加法--HDOJ 2100--Lovekey--大数--字符串处理
- HDOJ 2100 Lovekey
- HDOJ-1002 用JAVA写大数问题[大数加法]
- HDOJ A + B Problem II 大数相加问题
- 【大数问题】 HDOJ 4927 Series 1
- 【大数问题】 HDOJ 1250 Hat's Fibonacci
- (26进制大数相加)hdu 2100 Lovekey
- hdu 2100 Lovekey 大数加法
- hdoj.1753 大明A+B【大数问题】 20140804
- hdoj 2100 Lovekey 【另类A+B】
- 【大数问题】 HDOJ 1316 How Many Fibs?
- 求 n! (大数问题)----------HDOJ1042
- hdoj.1042 N!【大数问题】 20140731
- 【大数问题】 HDOJ 1047 Integer Inquiry
- hdoj 1002 大数加法问题