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