1563: 高精度加法
来源:互联网 发布:mac口红质地 编辑:程序博客网 时间:2024/05/16 13:41
题目描述
输入两个整数a和b,输出这两个整数的和。a和b都不超过100位。
算法描述
由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储。对于这种问题,一般使用数组来处理。
定义一个数组A,A[0]用于存储a的个位,A[1]用于存储a的十位,依此类推。同样可以用一个数组B来存储b。
计算c = a + b的时候,首先将A[0]与B[0]相加,如果有进位产生,则把进位(即和的十位数)存入r,把和的个位数存入C[0],即C[0]等于(A[0]+B[0])%10。然后计算A[1]与B[1]相加,这时还应将低位进上来的值r也加起来,即C[1]应该是A[1]、B[1]和r三个数的和.如果又有进位产生,则仍可将新的进位存入到r中,和的个位存到C[1]中。依此类推,即可求出C的所有位。
最后将C输出即可。
输入
输入包括两行,第一行为一个非负整数a,第二行为一个非负整数b。两个整数都不超过100位,两数的最高位都不是0。
输出
输出一行,表示a + b的值。
样例输入
201001222010012212345678902010012220100122
样例输出
20100122203011233454668012
import java.util.*;public class Main { static Scanner in=new Scanner(System.in); public static void main(String[] args) { while(in.hasNext()){ String s1=in.next(); String s2=in.next(); int k; if(s1.length()>s2.length()){ k=s1.length()-s2.length(); for (int i = 0; i<k; i++) s2="0"+s2; } else if(s1.length()<s2.length()){ k=s2.length()-s1.length(); for (int i = 0; i <k; i++) s1="0"+s1; } int cnt=Math.max(s1.length(),s2.length()); int[] a=new int[cnt]; int[] b=new int[cnt]; int[] c=new int[cnt]; for (int i = 0; i < cnt; i++) {a[i]=s1.charAt(i)-'0';b[i]=s2.charAt(i)-'0';} int r=0; int i=cnt-1; while(i>=0){ c[i]=(a[i]+b[i]+r)%10; if(a[i]+b[i]+r>=10){ r=0; r+=1; } else r=0; i--; } if(c[0]==0) System.out.print("1"); for (int j =0; j<c.length; j++) System.out.print(c[j]); System.out.println(); } } }
反思:这么简单的题也是绝了,我竟然做了好久,服气了,可能是太久没有刷题了吧,算起来也有两个周了,我的错咯,哎,
本题我犯得最蠢的错误就是,开始我进行字符串对齐操作的时候,令i<s1.length()-s2.length(),可是我忽略了我后来一直在改变
字符串长度啊,s2="0"+s2,真是绝了,还有后来进位,注意要把进位置零,以及最后一位的处理,若满足进位,要优先输出1,最后一遍,一定要注意变量的值随时变化,注意保护一些变量的值!!!!
阅读全文
0 0
- 1563: 高精度加法
- 高精度加法
- 高精度加法
- 高精度加法
- 高精度加法
- 高精度 加法
- 高精度加法
- 高精度加法
- 高精度加法
- 高精度加法
- 高精度加法
- 高精度加法
- 高精度加法
- 高精度加法
- 高精度加法
- 高精度加法
- 高精度加法
- 高精度加法
- 欧拉函数与欧拉定理
- IDEA 的使用(快捷键、括号对齐的方式)
- 包含常用功能的 gulpfile.js
- 用NodeJS+Mongodb+Pug开发博客网站
- leetcode 514. Freedom Trail
- 1563: 高精度加法
- Linux中关于用户和组的介绍
- Error:Error converting bytecode to dex
- OpenVPN服务器
- sparkstreaming读取kafka的两种方式
- 三极管:NPN和PNP
- 非root用户运行docker
- 博主的一些话
- java语言基础(85)——标准输入输出流 和 随机访问流