Java實(shí)現(xiàn)階乘運(yùn)算(遞歸、循環(huán))
下面我們使用遞歸與循環(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; }}
以上就是長(zhǎng)沙達(dá)內(nèi)教育java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“編程基礎(chǔ),Java實(shí)現(xiàn)階乘遞歸方法”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。