Java 大数加法HdAcm1002
2014-03-14 22:07
531 查看
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner cin = new Scanner(System.in); int n = cin.nextInt(); String num1 = ""; String num2 = ""; int m = 1; while(m <= n){ num1 = cin.next(); num2 = cin.next(); int len1 = num1.length(); int len2 = num2.length(); int lenMin = len1 < len2 ? len1:len2; int lenMax = len1 > len2 ? len1:len2; char[] res = new char[lenMax+1]; //开始进位 为 0 int jinwei = 0; //从两个字符串的尾部开始计算 for(int i = 1; i <= lenMin; i++){ int a = num1.charAt(len1 - i) - '0'; int b = num2.charAt(len2 - i) - '0'; if(a + b + jinwei <= 9){ //res 的长度为 lenMax res[lenMax + 1 - i] = (char)(a + b + jinwei + '0'); jinwei = 0; } else{ res[lenMax + 1 - i] = (char)(a + b - 10 + jinwei + '0'); jinwei = 1; } } //将长字符串的值赋给res if(lenMax == len1){ for(int j = len1 - lenMin - 1; j >= 0;j--) { int a = num1.charAt(j) - '0'; if( a + jinwei <= 9){ res[j+1] = (char)(a + jinwei + '0'); jinwei = 0; } else{ res[j+1] = (char)(a + jinwei - 10 + '0'); jinwei = 1; } } } else{ for(int j = len2 - lenMin - 1; j >= 0;j--) { int a = num2.charAt(j) - '0'; if( a + jinwei <= 9){ res[j+1] = (char)(a + jinwei + '0'); jinwei = 0; } else{ res[j+1] = (char)(a + jinwei - 10 + '0'); jinwei = 1; } } } System.out.println("Case" + " " + m + ":"); if(jinwei == 1){ res[0] = '1'; System.out.println(num1 + " " + "+" + " " + num2 + " " + "=" + " " + String.valueOf(res)); } else { System.out.println(num1 + " " + "+" + " " + num2 + " " + "=" + " " + String.valueOf(res, 1, lenMax)); } if(m < n){ System.out.println(); } m++; } cin.close(); } }
相关文章推荐
- hdu-1002-Java大数加法
- HDOJ-1002 用JAVA写大数问题[大数加法]
- hdu 1002 Java 大数 加法
- HDU 1002 A + B Problem II(大数加法,C,Java两个版本)
- 1002 Java大数加法
- hdu 1002 Java 大数 加法
- java实现大数加法(BigDecimal)的实例代码
- Java常用数字工具类 大数乘法、加法、减法运算(2)
- 大数加法 hdu 1002
- hdu 1002 A + B Problem II(大数模拟加法)
- HDU 1002 A + B Problem II (JAVA大数)
- hdu 1502 Regular Words(java大数加法+dp)
- 杭电1002大数加法
- 杭电 HDU 1002 A + B Problem II Java 大数的初级用法
- HDU1002 Sum Problem 大数 Java&&C 4000
- 抓起根本(二)(hdu 4554 叛逆的小明 hdu 1002 A + B Problem II,数字的转化(反转),大数的加法......)
- hdu 1002 java 大数相加
- java实现大数加法
- acm1002大数加法
- HDU 1002大数加法