當前位置:編程學習大全網 - 源碼下載 - 用Java寫任意長度的整數加法

用Java寫任意長度的整數加法

該程序可能滿足您的要求:

導入Java . io . buffered reader;

導入Java . io . io exception;

導入Java . io . inputstreamreader;

公共類BigInteger//定義長整型的類。

{

private static final int add 1 max = 1000;//可以計算的最大位數

private static final int add 2 max = 1000;//同上

private char[]add 1 = new char[add 1 max];

private char[]add 2 = new char[add 1 max];

private int len 1;

private int len2

公共void setAdd1()拋出IOException

{

int I = 0;

string sline 1;

System.out.print("請輸入第壹個長整數:");//輸入第壹個長整數。

buffered reader in = new buffered reader(new InputStreamReader(system . in));

sline 1 = in . readline();

for(;我& ltsline 1 . length();i++)

add 1[I]= sline 1 . charat(I);

for(I = 0;我& ltadd 1 max;i++)//len 1 = add 1 . length()

{

if(add1[i]!='\0')

len 1++;

}

}

公共void setAdd2()拋出IOException

{

int I = 0;

字符串sLine2

System.out.print("請輸入第二個長整數:");//輸入第二個長整數。

buffered reader in2 = new buffered reader(new InputStreamReader(system . in));

sline 2 = in2 . readline();

for(I = 0;我& ltsline 2 . length();i++)

add 2[I]= sline 2 . charat(I);

for(I = 0;我& ltadd2Maxi++)//len2=add2.length()

{

if(add2[i]!='\0')

len 2++;

}

}

public char[] getAdd1()

{

返回add 1;

}

public char[] getAdd2()

{

返回add2

}

public int getLen1()

{

返回len 1;

}

public int getLen2()

{

返回len2

}

Public void add (char [] add1,char [] add2)//biginteger加法方法。

{

int len = Math.max(len1,len 2);

int I;

char[]temp 1 = new char[len];

char[]temp 2 = new char[len];

char[]result = new char[len+1];

for(I = 0;我& ltlen 1;i++)

temp 1[len-1-I]= add 1[len 1-1-I];

for(I = 0;我& ltlen2i++)

temp 2[len-1-I]= add 2[len 2-1-I];

int m = 0;

for(I = 0;我& ltlenI++)//添加

{

if(temp1[len-1-i]!=0)

temp 1[len-1-I]-= 48;

if(temp2[len-1-i]!=0)

temp 2[len-1-I]-= 48;

m = temp 1[len-1-I]+temp 2[len-1-I];

如果(m & gt=10)

{

m-= 10;

結果[len-I]+= m;

結果[len-1-I]+= 1;

}

else結果[len-I]+= m;

}

System.out.print("加法之和為:");//輸出加法結果。

I = 0;

if(結果[0]==0)

I = 1;

for(;我& ltlen+1;i++)

system . out . print(integer . tostring(result[I]));

}

公共靜態void main(string[]args)throwsioexception//main方法

{

big integer big = new big integer();//生成BigInteger對象。

big . setadd 1();//得到數字1。

big . setadd 2();//得到數字2

char[]num 1 = big . getadd 1();//添加

char[]num 2 = big . getadd 2();//減法

int len 1 = big . getlen 1();

int len 2 = big . get len 2();

system . out . println();

System.out.println("第壹個長整數的長度為"+len 1 ");

System.out.println("第二個長整數的長度為:"+len 2 ");

big.add(num1,num 2);

system . out . println();

}

}

運行結果如下:

請輸入第壹個長整數:222222222222222222222222222222222222222555555555555555555555

請輸入第二個長整數:888888888888888888888

第壹個長整數的長度是:66

第二個長整數的長度是:65

相加的和是:3111111111165438。8+011111111111111111122555555555555555555555554

  • 上一篇:30分求救 誰能詳細的講壹下c#的可變數組用法?
  • 下一篇:分析大文本與圖像數據在數據庫內部的存儲原理。
  • copyright 2024編程學習大全網