HDU 1002 A+B problemII
来源:互联网 发布:php电子商务网站源码 编辑:程序博客网 时间:2024/06/05 22:46
问题:我有一个简单的问题给你,给你两个整数,你的工作是计算A+B的和
输入:
第一行输入包括一个整数T(1<=T<=20)表示测试案例的数量。然后有T行,每行包括两个正数,A和B。注意到这两整数非常大,意味着你不能用32位的整数操作它们。你可以假设每个整数的长度不超过1000。
输出:
对于每一个案例,你应该输出两行。第一行是Case #:,第二行是A + B = ?,等号旁边都有空格。两个案例之间用空行隔起来。
Sample Input
21 2112233445566778899 998877665544332211
Sample Output
Case 1:1 + 2 = 3Case 2:112233445566778899 + 998877665544332211 = 1111111111111111110
import java.util.Scanner;//用字符串实现大数相加public class Main {public static void main(String[] args) {Scanner cin = new Scanner(System.in);int num=cin.nextInt();int j=0;for(j=0;j<num;j++){String a = cin.next();String b = cin.next();Add(num,j,a, b);}}public static void Add(int num,int j,String a, String b) { //加法函数String a1 = invert(a); //因为加法都是从低位开始,所以把数字倒过来String b1 = invert(b);if (a1.length() < b1.length()) { //将长度较长的放在前面String temp = a1;a1 = b1;b1 = temp;}int jin = 0; //进位值char aa[] = a1.toCharArray();char bb[] = b1.toCharArray();int[] sum = new int[a1.length() + 1];for (int i = 0; i < b1.length(); i++) { //两个数都存在的情况下的加法int t = ((int) aa[i] - 48) + ((int) bb[i] - 48) + jin;if (t >= 10) {// 进位jin = t / 10;// 进位值t = t % 10;// 留下的值} elsejin = 0;sum[i] = t;}for (int i = b1.length(); i < a1.length(); i++) { //当一个数字加完之后,剩下长的数字余下的部分的加法,考虑进位的不同int t = jin + ((int) aa[i] - 48);if (t >= 10) {// 进位jin = t / 10;// 进位值t = t % 10;// 留下的值} elsejin = 0;sum[i] = t;}System.out.println("Case "+(j+1)+":");System.out.print(a+" + "+b+" = ");if (jin != 0) {sum[a1.length()] = jin; //判断最后一位是否有进位。for (int i = a1.length(); i >= 0; i--) {System.out.print(sum[i]); //按字符输出}} else {for (int i = a1.length() - 1; i >= 0; i--)System.out.print(sum[i]);}System.out.println();if(j!=(num-1)){System.out.println();}}public static String invert(String str) {StringBuilder newStr = new StringBuilder();for (int i = str.length() - 1; i >= 0; i--)newStr.append(str.charAt(i));return newStr.toString();}}
0 0
- HDU 1002 A+B problemII
- [hdu-1002] (A+B)problemII
- HDU 1002 A+B problemII
- HDU 1002 -- A+B problemII (Java)
- 杭电ACM----------1002 A+B problemII
- nyoj103 A+B ProblemII
- NYOJ 623 A*B ProblemII
- 杭电ACM-HDU1002-A+B ProblemII
- HDU 1023 Train ProblemII
- HDU-1002-A+B
- hdu 1002 A+B
- HDU 1002 A+B(大数)
- HDU-1002 大数A+B
- hdu 1002 A+B problem ||
- hdu 1002 A+B Problem
- HDU 1002 A+B Problem
- hdu 1002 A+B Problem ||
- HDU 1002 A+B problem
- HTML5/JavaScript UI控件Wijmo Enterprise正式发布2016 v1|附下载
- 54. Spiral Matrix
- Retrofit的使用封装
- [Coci2015]Stanovi解题报告
- Spark MLlib 1.6 -- 特征抽取和变换
- HDU 1002 A+B problemII
- mysql的yearweek 和 weekofyear函数
- 设置服务器开机启动不要填写密码 control userpasswords2
- C++中如何修改const变量(非常重要)
- 304. Range Sum Query 2D - Immutable
- 安卓使用webView中的JavaScript代码
- MFC编辑框设置,输入、输出数据最多保留5位小数
- Qt中如何添加ICON图标 Qt设置应用程序图标
- HTML 特殊符号编码对照表