public?static?int?jie(int?i){
創(chuàng)新互聯(lián)長期為1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為上虞企業(yè)提供專業(yè)的網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè),上虞網(wǎng)站改版等技術(shù)服務(wù)。擁有10余年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
if(i==1){
return?1;
}else{
return?i?*?jie(i-1);
}
}
public?static?void?main(String[]?args){
//比如求6的階乘
System.out.println("6的階乘是"?+?jie(6));
}
方法和分析見下文:
分析
1、確定基本要求,應(yīng)作為方法的限定條件或特殊情況處理
(1)規(guī)定:0!=1
(2)規(guī)定:n!中n非負(fù)
2、確定邏輯:
階乘是比較適合遞歸的思路,因為n!=n*(n-1)!,直到求解1!作為結(jié)束
代碼(因為不太熟悉java,可能還需要題主進(jìn)行微調(diào))
long Factorials(int n)
{
if(n0) return -1;//主要為了表示錯誤,題主可以自定義
if(n==1||n==0) return 1;//0!是特殊約定,1!是作為遞歸的結(jié)束
else return n*Factorials(n-1);//進(jìn)行遞歸,求解階乘結(jié)果
}
用Java求鍵盤輸入的數(shù)的階乘n。(遞歸算法)packagejiecheng; importjava.util.*;? //導(dǎo)入java.util包中的所有類classrep{ publiclongrep(intn){ longi=0; if(n==0||n==1) i=1;
elsi=n*rep(n-1)? returni; } } publicclassJie?{? publicstaticvoidmain(String[]?args)?{? intn;? //此處定義要輸入的數(shù)Scanner?s?= newScanner(System.in);? //以下三行用于n的值得輸入System.out.print( "請輸入一個整數(shù):"); n?=?s.nextInt(); rep?f= newrep(); System.out.println(n+"!="+f.rep(n)); } }
Java是一門面向?qū)ο缶幊陶Z言,不僅吸收了C++語言的各種優(yōu)點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強(qiáng)大和簡單易用兩個特征。Java語言作為靜態(tài)面向?qū)ο缶幊陶Z言的代表,極好地實現(xiàn)了面向?qū)ο罄碚?,允許程序員以優(yōu)雅的思維方式進(jìn)行復(fù)雜的編程。
發(fā)展歷程:20世紀(jì)90年代,硬件領(lǐng)域出現(xiàn)了單片式計算機(jī)系統(tǒng),這種價格低廉的系統(tǒng)一出現(xiàn)就立即引起了自動控制領(lǐng)域人員的注意,因為使用它可以大幅度提升消費類電子產(chǎn)品(如電視機(jī)頂盒、面包烤箱、移動電話等)的智能化程度。
Sun公司為了搶占市場先機(jī),在1991年成立了一個稱為Green的項目小組,帕特里克、詹姆斯·高斯林、麥克·舍林丹和其他幾個工程師一起組成的工作小組在加利福尼亞州門洛帕克市沙丘路的一個小工作室里面研究開發(fā)新技術(shù),專攻計算機(jī)在家電產(chǎn)品上的嵌入式應(yīng)用。
遞歸
public int factorial(int m)
{
if (m 0)
return 0;
else if ( m == 1)
reteurn 1;
else if (m 1)
return m * factorial(m-1);
}
非
public int factorial(int m)
{
if (m 0)
return 0;
else if ( m == 1)
reteurn 1;
else if (m 1)
{
int sum = 1
for (int i = 2; i = m; i++)
sum = sum * i;
return sum;
}
}
1、首先在電腦打開eclipse軟件,創(chuàng)建Scanner對象。
2、然后輸出信息,請求用戶輸入要輸入計算的階乘數(shù)。代碼:System.out.println("請輸入要計算的階乘數(shù):");
3、然后創(chuàng)建num接受鍵盤輸入的信息。再創(chuàng)建n,sum。
4、然后創(chuàng)建for語句,進(jìn)行計算階乘。
5、然后在最后,輸出所算的階乘結(jié)果。代碼:System.out.println(n+"的階乘為"+sum);
6、然后再點擊程序運行按鈕。在下面的窗口就可以看到運行結(jié)果。
親測可用
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);
}
輸出的結(jié)果是2561327494111820313
擴(kuò)展資料:
一個正整數(shù)的階乘(factorial)是所有小于及等于該數(shù)的正整數(shù)的積,并且0的階乘為1。自然數(shù)n的階乘寫作n!。1808年,基斯頓·卡曼引進(jìn)這個表示法。
亦即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。
參考資料:百度百科——階乘