public class Test
創(chuàng)新互聯(lián)公司-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性?xún)r(jià)比孟村網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式孟村網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋孟村地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴(lài)。
{public void calSum()
{long num = 9; // 數(shù)列的各個(gè)項(xiàng),后面會(huì)改變其值,使用 long, 因?yàn)?int 會(huì)超范圍
long sum = num; // 存放數(shù)列和,使用 long, 因?yàn)?int 會(huì)超范圍
// 因?yàn)橹坏?999999999,所以只用 9 次
for (int i = 0; i 9; i++)
{num = num * 10 + 9; // 根據(jù)數(shù)列當(dāng)前項(xiàng)得到下一項(xiàng)的值
sum += num; // 計(jì)算目前為止所有數(shù)的和}
System.out.println("9+99+999+...+9999999999=" + sum);}
public static void main(String[] argv)
{Test test = new Test();
test.calSum();}}
或者public class Test{ public void calSum() { long num = 9; // 數(shù)列的各個(gè)項(xiàng),后面會(huì)改變其值,使用 long, 因?yàn)?int 會(huì)超范圍 long sum = num; // 存放數(shù)列和,使用 long, 因?yàn)?int 會(huì)超范圍 // 因?yàn)橹坏?999999999,所以只用 9 次 for (int i = 0; i 9; i++) {num = num * 10 + 9; // 根據(jù)數(shù)列當(dāng)前項(xiàng)得到下一項(xiàng)的值 sum += num; // 計(jì)算目前為止所有數(shù)的和 } System.out.println("9+99+999+...+9999999999=" + sum) } public static void main(String[] argv) {Test test = new Test(); test.calSum();}
將大整數(shù)存入字符數(shù)組,按位相加。 給你寫(xiě)一段偽代碼。
String a = "12389839843958394";
String b = "23445655234343";
char ac [] = a.toCharArray();
char bc [] = b.toCharArray();
這里要將數(shù)組ac 和bc 倒序排列,因?yàn)?123"轉(zhuǎn)換后為{'1','2','3'} 高位在前,倒序是為了低位在前。這部分代碼自己實(shí)現(xiàn)把。
char longc[];
char shortc[];
if (ac.length=bc.length) {
longc=ac;
shortc=bc;
} else {
longc=bc;
shortc=ac;
}
下面做一個(gè)for循環(huán),按位相加乘以10的i次方。就像小學(xué)學(xué)的列豎式子一樣
int sum=0;
for (int i=longc.length;ilongc.length;i++) {
if (ishortc.length) {
sum+=(longc[i]+shortc[i]-96)*Math.pow(10, i);
} else {
sum+=(longc[i]-48)*Math.pow(10, i);
}
}
其中字符相加的時(shí)候減48是將char 轉(zhuǎn)換成int
如果是一般的兩個(gè)數(shù)求和,用 long類(lèi)型 初始化 就可以了~~~
import java.util.Scanner;
public class Demo1 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("請(qǐng)輸入兩個(gè)數(shù): ");
long n1,n2;
n1 = input.nextLong();
n2 = input.nextLong();
System.out.println("兩個(gè)數(shù)的和是: ");
System.out.println(n1+ n2);
}
}
運(yùn)行結(jié)果:
請(qǐng)輸入兩個(gè)數(shù):
213152454
238547571234
兩個(gè)數(shù)的和是:
238760723688
如果兩個(gè)數(shù)很大,超出了long表示范圍,用大數(shù)BigInteger 初始化 就OK了~~~
import java.math.BigInteger;
import java.util.Scanner;
public class 大數(shù)相加 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("請(qǐng)輸入兩個(gè)大數(shù): ");
Scanner input = new Scanner(System.in);
BigInteger b1 = input.nextBigInteger();
BigInteger b2 = input.nextBigInteger();
System.out.println("兩個(gè)大數(shù)的和是: ");
System.out.println(b1.add(b2));
}
}
運(yùn)行結(jié)果:
請(qǐng)輸入兩個(gè)大數(shù):
236547625754751312371
1237527547543547124751254
兩個(gè)大數(shù)的和是:
1237764095169301876063625
望采納~~~~~~~~~~
//?加入以下代碼
int?sum?=?0;
for(int?n:i)?{
sum?+=?n;
}
System.out.println("總和是:"+sum);