大整數java
將大整數存入字元數組,按位相加。 給你寫一段偽代碼。
String a = "12389839843958394";
String b = "23445655234343";
char ac [] = a.toCharArray();
char bc [] = b.toCharArray();
這里要將數組ac 和bc 倒序排列,因為"123"轉換後為{'1','2','3'} 高位在前,倒序是為了低位在前。這部分代碼自己實現把。
char longc[];
char shortc[];
if (ac.length>=bc.length) {
longc=ac;
shortc=bc;
} else {
longc=bc;
shortc=ac;
}
下面做一個for循環,按位相加乘以10的i次方。就像小學學的列豎式子一樣
int sum=0;
for (int i=longc.length;i<longc.length;i++) {
if (i<shortc.length) {
sum+=(longc[i]+shortc[i]-96)*Math.pow(10, i);
} else {
sum+=(longc[i]-48)*Math.pow(10, i);
}
}
其中字元相加的時候減48是將char 轉換成int
int arr[5]={1,5,5,5,5},c=0,i=0;
int number,temp;
printf("請輸入小於8位的整數:");
scanf("%d",&number);
while(number>0)
{
arr[c]=number%10;
number=number/10;
c++;
i++;
}
for(c=0;c<i;c++)
{
arr[c]=(arr[c]+5)%10;
}
temp=arr[0];
arr[0]=arr[c-1];
arr[c-1]=temp;
printf("顯示所設密碼為");
for(c=0;c<i;c++)
{
printf("%d,",arr[c]);
}
printf("\n");
這是用C語言實現的演算法是一樣,JAVA中有一個類從鍵盤錄入的
『叄』 Java中大整型變數怎樣實現自增
@Entity
public class Goods implements Serializable{
@Id
@GeneratedValue
private Integer id;
private Integer gooodsType;//品種
private String goodsName;//產品名稱
private String imageMain;//主圖
private List<String> otherImage;//其他圖片
}
該id就是自增的。
還有一種方式,就是要插入的時候,先查一下主鍵索引序列,然後++,在插入的時候,把id也插入進就可以了。
『肆』 Java中有比long還大的整數類型嗎
1、有兩個類BigInteger和BigDecimal分別表示大整數類和大浮點數類,可以作為比long還要大的數據類型
2、使用字元串或字元串數組、集合等能夠存儲比long大很多倍的整數變數類型(需數據類型轉換)
『伍』 java中我要 從鍵盤輸入 大整數BigInteger.怎麼實現
用Long啊,要是Long還是不能滿足需求的話就用String代替
『陸』 java中如何對較大的數字進行計算
不管是不是用JAVA,其實方法都一樣,利用數組比如說長度為一千的數字,可以這個 int[] number = new int[1000];相加的思路是,首先兩個數組的長度必須是一致,位數不同的話,前面補0,內存有點浪費,但是計算起來比較方便。然後讓它們從0到最高位,每位進行相加並保存相應的位置上。最後一步是從0開始判斷有沒有大於10的數字,如果有就向前面進位(前一個加1,當前位減10),這樣就可以。如果是相減,其實思路還是一樣的,每位先相減,再判斷是否有小於0的,如果有則向前面一位借1(前一位減1,當前位加10)如果是相乘,和上面一樣,不過要注意的是進位的時候,不止進一位,比如5*6,就要向前進3位了(前一位加3,當前位減30)除就比較麻煩點,要涉及到精確度問題,得看實際需要 輸出就更容易了,直接for循環數組 特別要注意的是,如果最高位有進位的時候,這個是比較容易出錯的地方 思路在上面,如果實現不了請留言
『柒』 java兩個大整數相乘的 演算法怎麼寫
有BigInteger這個類,你可以參數,如果需要自己寫,應該是用字元串來處理。
importjava.math.BigInteger;
publicclassTT{
publicstaticvoidmain(String[]args){
BigIntegeri1=newBigInteger("");
BigIntegeri2=newBigInteger("");
BigIntegerresult=i1.multiply(i2);
System.out.println(result.toString());
}
}
『捌』 java 中如何處理大整數
可使用java.math.BigInteger類,參考:網頁鏈接
『玖』 Java 2個(多個)大整數相加如何實
先自定義一個異常public class LowerException extends Exception{ int score ; public LowException(int score){ super("分數<=0"); this.score = score; } }新建一個類TestException.java然後寫這個拋異常方法:public void validate(int score) throws LowException { if (score <= 0) { throw new LowException(score); } public int inputScore(int score1,int score2 ) { try { validate(score1); validate(score2); int sum = score1+score2; return sum; } catch (LowException e) { System.out.println("進入低分異常"); System.out.println("數太低了,輸入的分數為" + e.score); e.printStackTrace(); } }public static void main(String[] args) { TestException te = new TestException(); double d1 = Double.parseDouble(args[0]);double d2 = Double.parseDouble(args[0]); System.out.println( te.inputScore(d1,d2)); }}你在編譯完畢後。在命令行執行java TestException 參數1 參數2 。記住參數只可以輸數字。不可以輸別的否則出現不可預知的後果。
『拾』 java中整數過大怎麼辦
數字後面加一個L,即984787397455546L;