更新時(shí)間:2020-06-18 14:48:58 來源:動(dòng)力節(jié)點(diǎn) 瀏覽2304次
Java實(shí)現(xiàn)階乘運(yùn)算(遞歸、循環(huán))
下面我們使用遞歸與循環(huán)
以及輸出的截圖:
/**
?*?遞歸階級(jí)算法,for循環(huán)
?*/
public?class?Recursion?{
public?static?void?main(String[]?args)?{
System.out.println("歡迎來到樹先生的世界!");
System.out.println("輸入要計(jì)算的值:");
//system.in是輸入
Scanner?sc?=?new?Scanner(System.in);
//讀取輸入的那一行的值
String?inta?=?sc.nextLine();
//判斷matches
if?(!inta.matches("\\d+"))?{
System.out.println("請(qǐng)確認(rèn)您輸入的是正數(shù)的數(shù)字?程序終止了");
return;
}
//將String類型轉(zhuǎn)換Integer
Integer?integer?=?new?Integer(inta);
//用的類型是long類型可以計(jì)算到40的階乘
if?(integer>40)?{
System.out.println("數(shù)字過大。請(qǐng)輸入1~40之間的值");
//過大會(huì)停止程序
return;
}
//傳進(jìn)去的參數(shù)
System.out.println("遞歸的結(jié)果是:"?+?factorial(integer));
System.out.println("循環(huán)的結(jié)果是:"?+?doFactorial(integer));
}
//?遞歸方法
public?static?long?factorial(int?num)?{
//當(dāng)參數(shù)等于1時(shí)返回本身
if?(num?==?1)?{
return?1;
}?
???//用long是為了計(jì)算跟多的值long的范圍比較大
long?digui=?(long)?(factorial(num?-?1)*num);//?階乘的算法factorial(num-1)*num
System.out.print("當(dāng)"?+?num?+?"時(shí)?,結(jié)果是:"+?digui);
System.out.println();
return?digui;
}
???//(循環(huán)方法)
??//long?是返回類型
public?static?long?doFactorial(int?num)?{
long?result?=?1;
for?(int?i?=?0;?i?<?num;?i++)?{
//?result?*=?i;累積
result?=?result?*?(i?+?1);
}
//返回值
return?result;
}
}
以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“編程基礎(chǔ),Java實(shí)現(xiàn)階乘遞歸方法”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)