親測可用
公司主營業(yè)務:網(wǎng)站設計、做網(wǎng)站、移動網(wǎng)站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)公司是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)公司推出隆堯免費做網(wǎng)站回饋大家。
long jiecheng(int x)
{
long int i,k=1;
for(i=1;i=x;i++)
k=k*i;
return k;
}
int main()
{
long int j,k=0;
int i;
for(i=1;i=20;i++)
{
j=jiecheng(i);
k+=j;
}
printf("%ld\n",k);
}
輸出的結果是2561327494111820313
擴展資料:
一個正整數(shù)的階乘(factorial)是所有小于及等于該數(shù)的正整數(shù)的積,并且0的階乘為1。自然數(shù)n的階乘寫作n!。1808年,基斯頓·卡曼引進這個表示法。
亦即n!=1×2×3×...×n。階乘亦可以遞歸方式定義:0!=1,n!=(n-1)!×n。
計算方法:
大于等于1:
任何大于等于1 的自然數(shù)n 階乘表示方法:n! =?1×2×3×...×(n-1)n或n! = n×(n-1)!
0的階乘:0!=1。
參考資料:百度百科——階乘
java中可以用for循環(huán)來實現(xià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++){//實現(xiàn)階層的循環(huán)
sum *= j;
}
System.out.println(i+"的階層是:"+sum);
}
}
}
for循環(huán)中的變量從1開始,循環(huán)遍歷到階層本身的這個數(shù),通過一個變量來記錄上一個數(shù)的乘積即可。
//控制臺數(shù)據(jù)自己獲取.
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)
class test{ public static void main(String[] args){ fun f=new fun(); for(int i=0;i=5;i++) System.out.print(f.fact1(i)+" "); System.out.println(); for(int i=0;i=5;i++) System.out.print(f.fact2(i)+" "); System.out.println(); long [] p=f.fact3(5); for(int i=0;ip.length;i++) System.out.print(p[i]+" "); System.out.println(); } } class fun{ long fact1(int n){ long result=1; if(n==0)return 0; for(int i=1;i=n;i++) result=result*i; return result; } long fact2(int n){ if(n==0)return 0; if(n==1)return 1; else return n*fact2(n-1); } long [] fact3(int n){ long [] result=new long[n+1]; result[0]=0; result[1]=1; for(int i=2;i=n;i++) result[i]=result[i-1]*i; return result; } }
1、采用自頂向上的遞歸方法,代碼如下:
import?java.util.Scanner;
public?class?Test?{
@SuppressWarnings("resource")
public?static?void?main(String[]?args)?{
//?從控制臺輸入一個整數(shù)
Scanner?in?=?new?Scanner(System.in);
int?b?=?in.nextInt();
//?聲明一個Test對象,調(diào)用cal方法獲得結果
Test?test?=?new?Test();
long?a?=?test.cal(b);
System.out.println(a);
}
//?通過遞歸掉調(diào)用最終返回結果
public?long?cal(int?number)?{
//?如果數(shù)字為1,則直接返回
if?(number?==?1)?{
return?1;
}?else?{//?否則遞歸求值
return?number?*?cal(number?-?1);
}
}
}
2、遞歸方法:
遞歸算法是把問題轉(zhuǎn)化為規(guī)??s小了的同類問題的子問題。然后遞歸調(diào)用函數(shù)(或過程)來表示問題的解。一個過程(或函數(shù))直接或間接調(diào)用自己本身,這種過程(或函數(shù))叫遞歸過程(或函數(shù)).
3、特點:
(1) 遞歸就是在過程或函數(shù)里調(diào)用自身。
(2) 在使用遞歸策略時,必須有一個明確的遞歸結束條件,稱為遞歸出口。
(3) 遞歸算法解題通常顯得很簡潔,但遞歸算法解題的運行效率較低。所以一般不提倡用遞歸算法設計程序。
(4) 在遞歸調(diào)用的過程當中系統(tǒng)為每一層的返回點、局部量等開辟了棧來存儲。遞歸次數(shù)過多容易造成棧溢出等。所以一般不提倡用遞歸算法設計程序。
網(wǎng)站題目:java代碼關于階乘 java的階乘代碼
鏈接URL:http://www.muchs.cn/article36/hggspg.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、域名注冊、網(wǎng)站設計、用戶體驗、網(wǎng)站維護、響應式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)