Java中兩個(gè)大數(shù)之間的相關(guān)運(yùn)算及BigInteger代碼示例
Java中兩個(gè)大數(shù)之間的相關(guān)運(yùn)算及BigInteger兩段實(shí)例代碼,具體如下。
大數(shù)相減
import java.util.Scanner;
/*
進(jìn)行大數(shù)相減,只能對(duì)兩個(gè)正數(shù)進(jìn)行相減
*/
public class BigNumber
{
public static void main(String[] args)
{
Scanner scan=new Scanner(System.in);
String a,b;
while (scan.hasNext())
{
BigNumber big=new BigNumber();
a=scan.nextLine();
b=scan.nextLine();
System.out.println(big.bigNumberSub(a,b));
}
}
public String bigNumberSub(String x,String y)
{
//String result=null;
char[] a=x.toCharArray();
char[] b=y.toCharArray();
int lenA=a.length;
int lenB=b.length;
int len=lenA>lenB?lenA:lenB;
int[] result=new int[len];
//字符串反轉(zhuǎn)
char[] A=new char[lenA];
char[] B=new char[lenB];
for (int i=0;i<lenA;i++)
{
A[i]=a[lenA-i-1];
}
for (int j=0;j<lenB;j++)
{
B[j]=b[lenB-j-1];
}
//判斷最終結(jié)果的正負(fù)
char sign='+';
if (lenA<lenB)
{
sign='-';
} else if(lenA>lenB)
{
sign='+';
} else
{
for (int i=lenA-1;i>=0;i--)
{
if (A[i]<B[i])
{
sign='-';
break;
} else if(A[i]>B[i])
{
sign='+';
break;
}
}
}
//
int aint,bint;
for (int i=0;i<len;i++)
{
aint=i<lenA?A[i]-'0':0;
bint=i<lenB?B[i]-'0':0;
if (sign=='+')
{
result[i]=aint-bint;
} else
{
result[i]=bint-aint;
}
}
//借位處理
for (int j=0;j<len;j++)
{
if (result[j]<0)
{
result[j+1]=result[j+1]-1;
result[j]=result[j]+10;
}
}
//將結(jié)果對(duì)應(yīng)為0的位置取消掉
StringBuilder sb=new StringBuilder();
Boolean flag=true;
//防止結(jié)果集中的地位出現(xiàn)0
if (sign=='-')
{
sb.append(sign);
}
for (int i=len-1;i>=0;i--)
{
if (result[i]==0&&flag)
{
} else
{
sb.append(result[i]);
flag=false;
}
}
return sb.toString();
//return result;
}
}
結(jié)果:

在Java中,還可以通過BigInteger類來解決精度問題。
import java.util.Scanner;
import java.math.BigInteger;
/*
進(jìn)行大數(shù)相加,
*/
public class BigNumber
{
public static void main(String[] args)
{
Scanner scan=new Scanner(System.in);
while (scan.hasNext())
{
BigInteger b1=new BigInteger(scan.nextLine());
BigInteger b2=new BigInteger(scan.nextLine());
System.out.println(b1.add(b2));
//System.out.println(000);
}
}
}
結(jié)果

接著再看一則代碼示例:
/**
* 大數(shù)運(yùn)算
* BigInteger
* 求91的5次方
* 求它除以100的余數(shù)
* 大數(shù)運(yùn)算Biginteger類的方法調(diào)用
*/
package com.test1;
import java.math.*;
import java.math.BigInteger;
public class test100 {
/**
* @param args
*/
static BigInteger k=BigInteger.valueOf(1);
static BigInteger j=BigInteger.valueOf(91);
static BigInteger n;
BigDecimal l=new BigDecimal("100");
static BigInteger m=new BigInteger("100");
public static void main(String[] args) {
// TODO Auto-generatedmethod stub
// k=BigInteger.valueOf(1);
// k=new BigInteger("1");
for(int i=1;i<=5;i++){
k=k.multiply(j);
System.out.println(k.toString());
// n=k.remainder(m);
n=k.remainder(m);
System.out.println(n.toString());
}
}
}
結(jié)果:

總結(jié)
以上就是本文關(guān)于Java中兩個(gè)大數(shù)之間的相關(guān)運(yùn)算及BigInteger代碼示例的全部內(nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:
如有不足之處,歡迎留言指出。
相關(guān)文章
Mybatis?List列表In查詢實(shí)現(xiàn)的注意事項(xiàng)說明
這篇文章主要介紹了Mybatis?List列表In查詢實(shí)現(xiàn)的注意事項(xiàng)說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02
Jdk11使用HttpClient提交Http2請(qǐng)求的實(shí)現(xiàn)方法
這篇文章主要介紹了Jdk11使用HttpClient提交Http2請(qǐng)求的實(shí)現(xiàn)方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08
Java實(shí)現(xiàn)讀取文件夾下(包括子目錄)所有文件的文件名
這篇文章主要介紹了Java實(shí)現(xiàn)讀取文件夾下(包括子目錄)所有文件的文件名,本文把代碼組織成了一個(gè)模塊,可以很方便的使用,需要的朋友可以參考下2015-06-06
SpringBoot啟動(dòng)java.nio.charset.MalformedInputException: I
本文主要介紹了SpringBoot啟動(dòng)java.nio.charset.MalformedInputException: Input length = 1報(bào)錯(cuò)的解決方案2023-07-07
SpringBoot集成支付寶支付的實(shí)現(xiàn)示例
本文主要介紹了SpringBoot集成支付寶支付的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06
redis.clients.jedis.exceptions.JedisAskDataException異常解決
redis.clients.jedis.exceptions.JedisAskDataExceptio異常是在使用Jedis客戶端與Redis集群交互時(shí)遇到的一種重定向異常,本文就來介紹一下解決方法,感興趣的可以了解一下2024-05-05
Java 中的FileReader和FileWriter源碼分析_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
本文給大家分享一段示例程序,通過示例代碼可以看出FileReader是基于InputStreamReader實(shí)現(xiàn)的,FileWriter是基于OutputStreamWriter實(shí)現(xiàn)的,具體程序代碼大家通過本文了解下吧2017-05-05

