首页 > 代码库 > 大数加法
大数加法
大数加法相比大数乘法来说就相对简单了,仍可以利用手工模拟加法的思想来计算大数加法,大数加法也可以采用先进行加法计算,即第i位的数相加仍保存在第i位,最后再统一处理进位。由于大数加法比较简单就边加边处理进位。
1 import java.util.Scanner; 2 3 public class bigNumberPlus { 4 static char[] reverse(char[] ch){//字符反转,即123转为321 5 int length = ch.length; 6 char[] temp = new char[length]; 7 for(int i=0;i<length;i++){ 8 temp[length-1-i] = ch[i]; 9 } 10 11 12 return temp; 13 } 14 static void plus(char[] chr1, char[] chr2){ 15 int length = chr1.length>=chr2.length?chr1.length:chr2.length; 16 chr1 = reverse(chr1); 17 chr2 = reverse(chr2); 18 int [] result = new int [length]; 19 20 int gobit = 0; 21 for(int i=0;i<length;i++){ //如果一个数的位数已遍历完,剩下的位数由0代替 22 int a_number = i<chr1.length?(chr1[i]-48):0; 23 int b_number = i<chr2.length?(chr2[i]-48):0; 24 int temp = gobit + a_number+b_number; 25 if(temp>=10){ 26 result[i] = temp-10; 27 gobit = 1; 28 }else{ 29 result[i] = temp; 30 gobit = 0; 31 } 32 } 33 if(gobit>0) //最高位进位的话就输出,没将进位保存在result数组中 34 System.out.print(gobit); 35 for(int i=length-1;i>=0;i--) 36 System.out.print(result[i]); 37 } 38 public static void main(String[] args) { 39 // TODO Auto-generated method stub 40 Scanner sc = new Scanner(System.in); 41 char [] chr1 = sc.next().toCharArray(); 42 char [] chr2 = sc.next().toCharArray(); 43 plus(chr1, chr2); 44 45 } 46 47 }
大数加法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。