用遞歸演算法求一個數字的階乘的程序如下:
public class JieCheng {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("請輸入一個整數:");
int n = in.nextInt();
System.out.println(n+"!="+f(n));
}
static long f(int n){
if (n==1) return 1;
else return n*f(n-1);
}
}
運行結果:
請輸入一個整數:6
6!=720
2. Java中怎樣用遞歸函數求20的階乘
int a=1;
for(int k=2;k<=20;k++){
fac=fac*k;
System.out.println(k="!="+fac);
}
下面的你得自己注意領悟拉:
Function js(i){ //定義函數 js 並傳遞參數 i
If (i = 1) { //若過程中 i=1
js = 1} //則 js = 1
Else //否則
js = i * js(i - 1) // ..
}
3. java怎麼用遞歸寫N的階乘
public class Fac {
public int fac(int n) {
return n <= 1 ? 1 : n * fac(n - 1);
}
}
這個比較簡單、普遍,有一定限制,給你作參考
4. 在java中,用遞歸方法計算n的階乘。
用Java求鍵盤輸入的數的階乘n。(遞歸演算法)packagejiecheng; importjava.util.*; //導入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; //此處定義要輸入的數Scanners= newScanner(System.in); //以下三行用於n的值得輸入System.out.print( "請輸入一個整數:"); n=s.nextInt(); repf= newrep(); System.out.println(n+"!="+f.rep(n)); } }
5. 求一個用java代碼寫出一個 用遞歸函數實現一個n的階乘 要求n是從鍵盤上輸入
importjava.util.Scanner;
publicclassFactorial{
publicstaticvoidmain(String[]args){
Scannersc=newScanner(System.in);
System.out.print("請輸入n:");
longn=Long.parseLong(sc.nextLine());
System.out.println(getFac(n));
}
publicstaticlonggetFac(longn){
if(n==1){
return1;
}
returngetFac(n-1)*n;
}
}
6. java遞歸求數字10的階乘。
我按照我的理解給你解答一下,希望你能看明白。
我理解中的遞歸,就是在沒完成當前運算的情況下,先完成當前運算的上一級,如上一級仍未完成則繼續推向上一級,知道完成某一級運算後,在逐條往回返,最終的運算結果就是最終的值。
i 為 10時,add(10) = 10*(add(9)),此時10為整數,而我們需要計算出add(9)為多少;
i 為 9 時,add(9) = 9*(add(8)),這樣再結合上一級 add(10) = 10*9*(add(8))
...
i 為2時, add(2) = 2*(add(1))=2*1,因此add(10) = 10*9*8*7*6*5*4*3*2*1.
7. java如何用遞歸實現數字的階乘呢
public static int jiecheng(int n)
{
if (n ==1)
{
return 1;
}
else
{
return jiecheng(n - 1) * n;
}
}
然後調用jiecheng這個方法,輸出jiecheng(n).............n數字自己取