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

大数加法

思路一:定义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

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

时间: 2024-10-09 20:29:22

Java实现大数加法运算的几种方法的相关文章

Java中获取键盘输入值的三种方法

Java中获取键盘输入值的三种方法     Java程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值的现成函数!Java没有提供这样的函数也不代表遇到这种情况我们就束手无策,请你看以下三种解决方法吧: 以下将列出几种方法: 方法一:从控制台接收一个字符,然后将其打印出来 import java.io.*; public static void main(String [] args) throws

Java读取文件夹大小的6种方法及代码

这篇文章介绍了JAVA读取文件夹大小的几种方法实例,有需要的朋友可以参考一下. (一)单线程递归方式 package com.taobao.test; import java.io.File; public class TotalFileSizeSequential { public static String fileName = "C:\\Documents and Settings\\Administrator\\桌面\\monkeytalk"; // 递归方式 计算文件的大小

java小知识点(一)---Java中获取键盘输入值的三种方法

Java中获取键盘输入值的三种方法   程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值的现成函数!Java没有提供这样的函数也不代表遇到这种情况我们就束手无策,请你看以下三种解决方法吧:   以下将列出几种方法:   方法一:从控制台接收一个字符,然后将其打印出来   publicstatic void main(String [] args) throws IOException{   Sys

java 获取键盘输入常用的两种方法

java 获取键盘输入常用的两种方法 方法1: 通过 Scanner Scanner input = new Scanner(System.in); String s = input.nextLine(); input.close(); 方法2: 通过 BufferedReader BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); String s = input.readLine(); 原文

java对象转换String类型的三种方法

在很多情况下我们都需要将一个对象转换为String类型.一般来说有三种方法可以实现:Object.toString().(String)Object.String.valueOf(Object).下面对这三种方法一一分析 一.采用Object.toString()toString方法是java.lang.Object对象的一个public方法.在java中任何对象都会继承Object对象,所以一般来说任何对象都可以调用toString这个方法.这是采用该种方法时,常派生类会覆盖Object里的t

Java中获取键盘输入值的三种方法 (转)

程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值的现成函数!Java没有提供这样的函数也不代表遇到这种情况我们就束手无策,请你看以下三种解决方法吧: 以下将列出几种方法: 方法一:从控制台接收一个字符,然后将其打印出来 public static void main(String [] args) throws IOException{ System.out.print(“Enter a Char

Java学习笔记---多线程同步的五种方法

一.引言 前几天面试,被大师虐残了,好多基础知识必须得重新拿起来啊.闲话不多说,进入正题. 二.为什么要线程同步 因为当我们有多个线程要同时访问一个变量或对象时,如果这些线程中既有读又有写操作时,就会导致变量值或对象的状态出现混乱,从而导致程序异常.举个例子,如果一个银行账户同时被两个线程操作,一个取100块,一个存钱100块.假设账户原本有0块,如果取钱线程和存钱线程同时发生,会出现什么结果呢?取钱不成功,账户余额是100.取钱成功了,账户余额是0.那到底是哪个呢?很难说清楚.因此多线程同步就

Java中获取键盘输入值的三种方法【转】

程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值的现成函数!Java没有提供这样的函数也不代表遇到这种情况我们就束手无策,请你看以下三种解决方法吧: 以下将列出几种方法: 方法一:从控制台接收一个字符,然后将其打印出来 public static void main(String [] args) throws IOException{ System.out.print(“Enter a Char

Java反射定义、获取Class三种方法

反射机制的定义: 在运行状态时(动态的),对于任意一个类,都能够得到这个类的所有属性和方法.  对于任意一个对象,都能够调用它的任意属性和方法. Class类是反射机制的起源,我们得到Class类对象有3种方法: 第一种:通过类名获得 Class<?> class = ClassName.class; 第二种:通过类名全路径获得: Class<?> class = Class.forName("类名全路径"); 第三种:通过实例对象获得: Class<?&