這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)使用Java怎么實現(xiàn)兩個大數(shù)之間的運算,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
創(chuàng)新互聯(lián)公司是一家專業(yè)提供新余企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計制作、網(wǎng)站建設(shè)、成都h5網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為新余眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計公司優(yōu)惠進行中。
大數(shù)相減
import java.util.Scanner; /* 進行大數(shù)相減,只能對兩個正數(shù)進行相減 */ 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é)果的正負 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é)果對應(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; /* 進行大數(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ù)運算 * BigInteger * 求91的5次方 * 求它除以100的余數(shù) * 大數(shù)運算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é)果:
上述就是小編為大家分享的使用Java怎么實現(xiàn)兩個大數(shù)之間的運算了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
本文名稱:使用Java怎么實現(xiàn)兩個大數(shù)之間的運算
標(biāo)題來源:http://jinyejixie.com/article28/psgccp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、、關(guān)鍵詞優(yōu)化、虛擬主機、網(wǎng)站維護、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)