import?java.util.Scanner;
創(chuàng)新互聯(lián)長期為成百上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為皇姑企業(yè)提供專業(yè)的成都網(wǎng)站制作、成都網(wǎng)站設(shè)計,皇姑網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
public?class?nj?{
public?static?void?main(String[]?args)?{
Scanner?sc?=?new?Scanner(System.in);
int?n?=?sc.nextInt();
int?a?=?1;
while(n?!=?1){
a?=?a*n;
n--;
}
System.out.println(a);
}
}
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);//調(diào)用jiecheng()函數(shù)算出i+1的階乘,加到sum當(dāng)中
}
System.out.println("1!+2!+3!+4!+.....+10!的值為:" + sum);
}
public static int jiecheng(int n){//算階乘的函數(shù)
if(n == 1 || n == 0){
return 1;
}
else return n * jiecheng(n - 1);
}
}
階乘的公式是
n!=n*(n-1)*(n-2)....*2*1
這個公式可以通過一個java的循環(huán)來實現(xiàn),也就是第一種方法。
for(int i=number; i0;i--)
這個循環(huán)在i=0的時候結(jié)束, 而階乘的結(jié)果通過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
}
第二種是通過遞歸來實現(xiàn)階乘。
遞歸就是方法調(diào)用自身, 最終通過一個出口來結(jié)束程序的調(diào)用。
這個出口要保證程序不出現(xiàn)死循環(huán)。
在上面的f(x)- n*f(x-1)這里, 出口就可以設(shè)置為
if(1==number)
{return 1;}
代碼實現(xiàn):
public static int cur(int number){
if(number!=0){
return number*cur(number-1);
}else return 1;
}
給你寫了下代碼,在主函數(shù)里調(diào)用的時候需要多少以內(nèi)的階乘相加就把參數(shù)寫成多少就好。代碼如下:
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)?{//循環(huán)執(zhí)行,輸出最終結(jié)果
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);//調(diào)用,得到最終結(jié)果
}
有什么問題再追問。
這個好辦
import java.util.*;
public class Jiecheng {
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
System.out.println("1~10");
int i= s.nextInt();
int r=0;
do{r*=i; i++;
if(i10||i0)break;}
while(i10||i0);
System.out.println(r);
}
}