码迷,mamicode.com
首页 > 编程语言 > 详细

Java实现大数加法运算的几种方法

时间:2019-03-09 17:48:07      阅读:358      评论:0      收藏:0      [点我收藏+]

标签:加法   flow   相加   span   思路   imp   大数加法   ide   int   

大数加法

思路一:定义String变量str1和str2分别存储输入的两个大数,定义num1[]和num2[]两个int型数组,将两个字符串分别逐个字符逆序存入数组,定义sum[]数组存放求和结果,使用循环两个数组中的元素逐位相加,并判断是否进位,最后逆序输出数组sum[]中的每个元素。

技术图片
 1 import java.util.Scanner;
 2 
 3 public class largenumberOperationAdd {
 4     public static void main(String[] args){
 5         Scanner sc=new Scanner(System.in);
 6         System.out.println("请输入第一个高位整数:");
 7         String str1=sc.next();
 8         System.out.println("请输入第二个高位整数:");
 9         String str2=sc.next();
10         int[] num1=new int[str1.length()];  //num1[]存储第一个大数
11         int[] num2=new int[str2.length()];  //num2[]存储第二个大数
12         int len=1+Math.max(str1.length(),str2.length());//找到两个大数中位数更高的一个并+1,设置为求和数组的长度
13         int[] sum=new int[len];             //sum[]存储两大数之和
14         for (int a=0;a<str1.length();a++){
15             //将str1数字逐个倒序放入数组num1[]
16             num1[str1.length()-a-1]=Integer.parseInt(str1.substring(a,a+1));
17         }
18         for (int b=0;b<str2.length();b++){
19             //将str2数字逐个倒序放入数组num2[]
20             num2[str2.length()-b-1]=Integer.parseInt(str2.substring(b,b+1));
21         }
22         int overflow=0;
23         for (int i=0;i<len-1;i++){
24             //逐位相加,满10进1
25             sum[i]=num2[i]+num1[i]+overflow;
26             if (sum[i]>=10){
27                 sum[i]=sum[i]%10;
28                 overflow=1;
29             }else{
30                 overflow=0;
31             }
32         }
33         for (int j=len-1;j>=0;j--){
34             System.out.print(sum[j]);
35         }
36     }
37 }
largenumberOperationAdd

 

Java实现大数加法运算的几种方法

标签:加法   flow   相加   span   思路   imp   大数加法   ide   int   

原文地址:https://www.cnblogs.com/edward-life/p/10502167.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!