使用BigInteger大容量運算類計算100的階乘
成都創(chuàng)新互聯是專業(yè)的慶元網站建設公司,慶元接單;提供成都網站制作、做網站,網頁設計,網站設計,建網站,PHP網站建設等專業(yè)做網站服務;采用PHP框架,可快速的進行慶元網站開發(fā)網頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網站,專業(yè)的做網站團隊,希望更多企業(yè)前來合作!
一.一般算法(循環(huán))
view plaincopy to clipboardprint?
public class Test {
public static void main(String[] args) {
int result = 1;
for (int i = 1; i = 100; i++) {
result *= i;
}
System.out.println(result);
}
}
public class Test {
public static void main(String[] args) {
int result = 1;
for (int i = 1; i = 100; i++) {
result *= i;
}
System.out.println(result);
}
}
輸出結果為0,因為int無法保存下100的階乘的結果,100的階乘的長度至少大于50位,也要大于long,double
二.使用BigInteger大容量運算類
view plaincopy to clipboardprint?
import java.math.BigInteger;
public class Test {
public static void main(String[] args) {
BigInteger result = new BigInteger("1");//為result賦初始值,為1
for (int i = 1; i = 100; i++) {
BigInteger num = new BigInteger(String.valueOf(i));
result = result.multiply(num);//調用自乘方法
}
System.out.println(result);//輸出結果
System.out.println(String.valueOf(result).length());//輸出長度
}
}
import java.math.BigInteger;
public class Test {
public static void main(String[] args) {
BigInteger result = new BigInteger("1");//為result賦初始值,為1
for (int i = 1; i = 100; i++) {
BigInteger num = new BigInteger(String.valueOf(i));
result = result.multiply(num);//調用自乘方法
}
System.out.println(result);//輸出結果
System.out.println(String.valueOf(result).length());//輸出長度
}
}
計算結果為:93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
產度:158
//控制臺數據自己獲取.
int[] kim = new int[]{6,5,4,3,2,1}//這是應該從控制臺獲取
//遞歸方式獲取階乘
private int getJc(int k){
if(k=1){
return 1;
}else{
return k*getJc(k-1);
}
}
int result=0;
String buffer = "";
for(int i=0;ikim .length;i++){
if(i!=0){
buffer = buffer+" +"+kim[i]+"!";
}else{
buffer=buffer+kim[i] +"!";
}
result =result +kim[i];
}
buffer = buffer+"="+result;
System.out.println(buffer)
java中可以用for循環(huán)來實現階層。
代碼如下:
public class Demo {
public static void main(String[] args) {
for(int i=1;i5;i++){
int sum = 1;//定義一個用來存儲階層的值
for(int j=1;j=i;j++){//實現階層的循環(huán)
sum *= j;
}
System.out.println(i+"的階層是:"+sum);
}
}
}
for循環(huán)中的變量從1開始,循環(huán)遍歷到階層本身的這個數,通過一個變量來記錄上一個數的乘積即可。
網頁標題:java的階乘代碼 java求階乘代碼
本文網址:http://muchs.cn/article26/ddcpocg.html
成都網站建設公司_創(chuàng)新互聯,為您提供用戶體驗、商城網站、服務器托管、定制開發(fā)、企業(yè)網站制作、網站改版
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯