java實現(xiàn)階乘的代碼 Java階乘代碼

用java編寫n的階乘要求是int foo(int+x)

按照你的要求編寫的n的階乘的Java程序如下

成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比侯馬網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式侯馬網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋侯馬地區(qū)。費用合理售后完善,10多年實體公司更值得信賴。

public class Factorial{

public int foo(int x){

if(x==0 || x==1){

return 1;

}else{

return x*foo(x-1);

}

}

public static void main(String[] args){

int n=6;

Factorial f=new Factorial();

System.out.println(f.foo(n));

}

}

JAVA中怎么表示階乘

java中可以用for循環(huán)來實現(xiàn)階層。

代碼如下:

public class Demo {

public static void main(String[] args) {

for(int i=1;i5;i++){

int sum = 1;//定義一個用來存儲階層的值

for(int j=1;j=i;j++){//實現(xiàn)階層的循環(huán)

sum *= j;

}

System.out.println(i+"的階層是:"+sum);

}

}

}

for循環(huán)中的變量從1開始,循環(huán)遍歷到階層本身的這個數(shù),通過一個變量來記錄上一個數(shù)的乘積即可。

用java遞歸算法求一個數(shù)字的階乘

1、采用自頂向上的遞歸方法,代碼如下:

import?java.util.Scanner;

public?class?Test?{

@SuppressWarnings("resource")

public?static?void?main(String[]?args)?{

//?從控制臺輸入一個整數(shù)

Scanner?in?=?new?Scanner(System.in);

int?b?=?in.nextInt();

//?聲明一個Test對象,調(diào)用cal方法獲得結(jié)果

Test?test?=?new?Test();

long?a?=?test.cal(b);

System.out.println(a);

}

//?通過遞歸掉調(diào)用最終返回結(jié)果

public?long?cal(int?number)?{

//?如果數(shù)字為1,則直接返回

if?(number?==?1)?{

return?1;

}?else?{//?否則遞歸求值

return?number?*?cal(number?-?1);

}

}

}

2、遞歸方法:

遞歸算法是把問題轉(zhuǎn)化為規(guī)??s小了的同類問題的子問題。然后遞歸調(diào)用函數(shù)(或過程)來表示問題的解。一個過程(或函數(shù))直接或間接調(diào)用自己本身,這種過程(或函數(shù))叫遞歸過程(或函數(shù)).

3、特點:

(1) 遞歸就是在過程或函數(shù)里調(diào)用自身。

(2) 在使用遞歸策略時,必須有一個明確的遞歸結(jié)束條件,稱為遞歸出口。

(3) 遞歸算法解題通常顯得很簡潔,但遞歸算法解題的運行效率較低。所以一般不提倡用遞歸算法設計程序。

(4) 在遞歸調(diào)用的過程當中系統(tǒng)為每一層的返回點、局部量等開辟了棧來存儲。遞歸次數(shù)過多容易造成棧溢出等。所以一般不提倡用遞歸算法設計程序。

java怎么寫求階乘?

親測可用

long jiecheng(int x)

{

long int i,k=1;

for(i=1;i=x;i++)

k=k*i;

return k;

}

int main()

{

long int j,k=0;

int i;

for(i=1;i=20;i++)

{

j=jiecheng(i);

k+=j;

}

printf("%ld\n",k);

}

輸出的結(jié)果是2561327494111820313

擴展資料:

一個正整數(shù)的階乘(factorial)是所有小于及等于該數(shù)的正整數(shù)的積,并且0的階乘為1。自然數(shù)n的階乘寫作n!。1808年,基斯頓·卡曼引進這個表示法。

亦即n!=1×2×3×...×n。階乘亦可以遞歸方式定義:0!=1,n!=(n-1)!×n。

計算方法:

大于等于1:

任何大于等于1 的自然數(shù)n 階乘表示方法:n! =?1×2×3×...×(n-1)n或n! = n×(n-1)!

0的階乘:0!=1。

參考資料:百度百科——階乘

java中怎么實現(xiàn)階乘,如計算1~100的階乘

使用BigInteger大容量運算類計算100的階乘

一.一般算法(循環(huán))

view plaincopy to clipboardprint?

public class Test {

public static void main(String[] args) {

int result = 1;

for (int i = 1; i = 100; i++) {

result *= i;

}

System.out.println(result);

}

}

public class Test {

public static void main(String[] args) {

int result = 1;

for (int i = 1; i = 100; i++) {

result *= i;

}

System.out.println(result);

}

}

輸出結(jié)果為0,因為int無法保存下100的階乘的結(jié)果,100的階乘的長度至少大于50位,也要大于long,double

二.使用BigInteger大容量運算類

view plaincopy to clipboardprint?

import java.math.BigInteger;

public class Test {

public static void main(String[] args) {

BigInteger result = new BigInteger("1");//為result賦初始值,為1

for (int i = 1; i = 100; i++) {

BigInteger num = new BigInteger(String.valueOf(i));

result = result.multiply(num);//調(diào)用自乘方法

}

System.out.println(result);//輸出結(jié)果

System.out.println(String.valueOf(result).length());//輸出長度

}

}

import java.math.BigInteger;

public class Test {

public static void main(String[] args) {

BigInteger result = new BigInteger("1");//為result賦初始值,為1

for (int i = 1; i = 100; i++) {

BigInteger num = new BigInteger(String.valueOf(i));

result = result.multiply(num);//調(diào)用自乘方法

}

System.out.println(result);//輸出結(jié)果

System.out.println(String.valueOf(result).length());//輸出長度

}

}

計算結(jié)果為:93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000

產(chǎn)度:158

本文標題:java實現(xiàn)階乘的代碼 Java階乘代碼
URL分享:http://muchs.cn/article10/doccgdo.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設、品牌網(wǎng)站制作、服務器托管、軟件開發(fā)、ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設