public class Qiuhe {
公司主營業務:網站建設、成都網站設計、移動網站開發等業務。幫助企業客戶真正實現互聯網宣傳,提高企業的競爭能力。創新互聯建站是一支青春激揚、勤奮敬業、活力青春激揚、勤奮敬業、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰,讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創新互聯建站推出鐵鋒免費做網站回饋大家。
public Qiuhe() {
}
public static void main(String args[]){
int sum = 0;//用來存放1!+2!+3!+4!+.....+10!的值,初始值為零
for(int i = 0; i 10; i++ ){
sum += jiecheng(i + 1);//調用jiecheng()函數算出i+1的階乘,加到sum當中
}
System.out.println("1!+2!+3!+4!+.....+10!的值為:" + sum);
}
public static int jiecheng(int n){//算階乘的函數
if(n == 1 || n == 0){
return 1;
}
else return n * jiecheng(n - 1);
}
}
2000的階乘太大了,一般的方法是計算不出來的 )_(
class Factorial
{
public static void main(String[] args)
{
int n = 5; //假設輸入的數是 5
int sum = 1;
if (n 0)
{
System.out.println("n is overflow");
return ;
}
else if (n == 0)
{
n = 0;
}
else {
for (int i = 1; i = n ; i ++)
{
sum = sum * i;
}
}
System.out.println("n! = " + sum);
}
}
階乘的公式是
n!=n*(n-1)*(n-2)....*2*1
這個公式可以通過一個java的循環來實現,也就是第一種方法。
for(int i=number; i0;i--)
這個循環在i=0的時候結束, 而階乘的結果通過result*=i來計算。
public static int compute(int number)
{
int result=1;
for(int i=number;i0;i--){
result*=i;
}
return result;
}
public static void main(String[] args)
{
System.out.println(compute(30)); //789912231223232323211
}
第二種是通過遞歸來實現階乘。
遞歸就是方法調用自身, 最終通過一個出口來結束程序的調用。
這個出口要保證程序不出現死循環。
在上面的f(x)- n*f(x-1)這里, 出口就可以設置為
if(1==number)
{return 1;}
代碼實現:
public static int cur(int number){
if(number!=0){
return number*cur(number-1);
}else return 1;
}
給你寫了下代碼,在主函數里調用的時候需要多少以內的階乘相加就把參數寫成多少就好。代碼如下:
public?static?long?factorial(int?n)?{//求n的階乘
if(n?==?1)
return?1;
return?n?*?factorial(n?-?1);
}
public?static?void?print(int?n)?{//輸出等號左邊,比如“1!?+2!”
if(n?==?1)?{
System.out.print("1!");
return;
}
print(n?-?1);
System.out.print("?+"?+?n?+?"!");
}
public?static?void?doFactorSum(int?n)?{//循環執行,輸出最終結果
long?result?=?0;
for(int?i?=?1;?i?=?n;?i++)?{
result?+=?factorial(i);
print(i);
System.out.println("="?+?result);
}
}
public?static?void?main(String[]?args)?{
doFactorSum(20);//調用,得到最終結果
}
有什么問題再追問。
分享標題:java階層代碼 javan的階層
標題網址:http://vcdvsql.cn/article6/dopjdog.html
成都網站建設公司_創新互聯,為您提供網站收錄、建站公司、小程序開發、網站建設、品牌網站制作、搜索引擎優化
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯