導航:首頁 > 編程語言 > java遞歸n的階乘

java遞歸n的階乘

發布時間:2022-09-02 17:03:49

❶ 用java寫一個遞歸計算N的階乘。並根據0! = 1。輸入n的值,然後輸出出N!值

importjava.util.Scanner;

/**
*@authoryoung
*@Description:用遞歸和非遞歸算階乘
*@date2016年6月14日上午8:29:47
*/
publicclassFacTest{
//遞歸
publicstaticintfactorial(intm){
if(m<0){
return0;
}
elseif(m==1){
return1;
}
else{
returnm*factorial(m-1);
}
}

//非遞歸
publicstaticintnoFactorial(intm){
if(m<0){
return0;
}elseif(m==1){
return1;
}else{

intsum=1;
for(inti=2;i<=m;i++)
sum=sum*i;
returnsum;
}

}
publicstaticvoidmain(String[]args){
Scannerscanner=newScanner(System.in);
System.out.print("輸入一個數N:");
intn=scanner.nextInt();
System.out.println("它的階乘為(遞歸):"+factorial(n));
System.out.println("它的階乘為(非遞歸):"+noFactorial(n));
}
}

❷ Java 編寫一個方法,求一個數的階乘。 n!=1×2×3×...×n,比如3!=1*2*3=6

方法和分析見下文:


分析

1、確定基本要求,應作為方法的限定條件或特殊情況處理

(1)規定:0!=1

(2)規定:n!中n非負


2、確定邏輯:

階乘是比較適合遞歸的思路,因為n!=n*(n-1)!,直到求解1!作為結束


代碼(因為不太熟悉java,可能還需要題主進行微調)


long Factorials(int n)

{

if(n<0) return -1;//主要為了表示錯誤,題主可以自定義

if(n==1||n==0) return 1;//0!是特殊約定,1!是作為遞歸的結束

else return n*Factorials(n-1);//進行遞歸,求解階乘結果

}

❸ java怎麼用遞歸寫N的階乘

public class Fac {
public int fac(int n) {
return n <= 1 ? 1 : n * fac(n - 1);
}
}
這個比較簡單、普遍,有一定限制,給你作參考

❹ 求一個用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;
}
}

❺ 用java程序寫一個用遞歸和非遞歸方法求n的階乘

遞歸
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;

}
}

❻ java n的階乘

無語

public class jjjj {

int pp(int n)
{
if(n<2)
return 1*n;
else
return n*pp(n-1);
}
public static void main(String args[])
{
jjjj b=new jjjj();
int d=b.pp(5);
System.out.print(d);
}
}

階乘就是利用遞歸啊。

整個程序的核心就是int pp(int n)
{
if(n<2)
return 1*n;
else
return n*pp(n-1);
}
這一段, 如果n大於2,返回n*pp(n-1)的意思,就是,任何一個N的階乘等於n*比n小1的數的階乘,打個比方,比如5的階乘等於5*(4的階乘),4的階乘等於4*(3的階乘),而1的階乘,等於1本身。

❼ 用java遞歸演算法求一個數字的階乘

用遞歸演算法求一個數字的階乘的程序如下:
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

❽ java輸入一個數n,計算n的階乘(5的階乘=1*2*3*4*5)

1、首先要理解一下階乘的公式:

n!=n*(n-1)*(n-2)*....*2*1,5!=5*4*3*2*1

#include//頭文件stdio.h在新浪博客中無法顯示加上就可以了

intmain()

{

intt=5,i=4;//要是求其他的數的階乘的話,把t的值改為其他數,

//再把i改為(t-1)就行了

while(i>=1)

{

t=t*i;

i--;

}

printf("5的階乘結果是:%d ",t);

return0;

}

2、運行結果如下:

❾ java如何用遞歸實現數字的階乘呢

public static int jiecheng(int n)
{
if (n ==1)
{
return 1;
}
else
{
return jiecheng(n - 1) * n;
}
}
然後調用jiecheng這個方法,輸出jiecheng(n).............n數字自己取

閱讀全文

與java遞歸n的階乘相關的資料

熱點內容
python評論樹講解 瀏覽:678
juniper防火牆常用命令 瀏覽:426
vapp怎麼下載地址 瀏覽:11
pdf裡面內容怎麼修改 瀏覽:807
收藏網址加密的瀏覽器 瀏覽:1000
phpurl問號 瀏覽:898
什麼筆記本電腦可以用python 瀏覽:135
加密相冊如何翻找 瀏覽:992
泰州地區DNS伺服器地址 瀏覽:849
一種app可以買菜用英語怎麼說 瀏覽:196
中國聯通app裡面通話詳單怎麼刪除 瀏覽:505
計算機網路編譯軟體 瀏覽:100
程序員說不能說的秘密 瀏覽:700
在線shell編譯器 瀏覽:103
為什麼王者榮耀安卓轉蘋果成功登不上去 瀏覽:710
文件加密演算法可行性報告 瀏覽:60
a3雙面列印pdf 瀏覽:270
被命令文言文 瀏覽:717
c語言編譯器在線菜鳥 瀏覽:215
安卓如何使用華為手機助手 瀏覽:701