按照你的要求編寫的n的階乘的Java程序如下
公司主營業務:網站制作、成都做網站、移動網站開發等業務。幫助企業客戶真正實現互聯網宣傳,提高企業的競爭能力。創新互聯建站是一支青春激揚、勤奮敬業、活力青春激揚、勤奮敬業、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰,讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創新互聯建站推出豐都免費做網站回饋大家。
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));
}
}
int n=8;
int p=n;
for(int i=n;i1;i--){
p*=i;
}
print("%d\n",p);
1、首先要理解一下階乘的公式:
n!?=n*(n-1)*(n-2)*....*2*1,????5!?=?5*4*3*2*1
#include???????????//頭文件stdio.h在新浪博客中無法顯示加上就可以了
int?main()
{
int?t=5,i=4;???//要是求其他的數的階乘的話,把t的值改為其他數,
//再把i改為(t-1)就行了
while(i=1)
{
t=t*i;
i--;
}
printf("5的階乘結果是:%d\n",t);
return?0;
}
2、運行結果如下:
3、上面這種方法雖然能求出結果,但是不能求任意的數,也沒有考慮到0!=1,這種情況,我們來改進一下;
#include??????????????????????// //頭文件stdio.h在新浪博客中無法顯示加上就可以了
int?main()
{
int?n,jc;
int?jiecheng(int?j);
printf("請輸入任意一個整數\n");
scanf("%d",n);
jc=jiecheng(n);
printf("該數的階乘結果是:%d\n",jc);
return?0;
}
int?jiecheng(int?j)
{
int?i=j-1;
if(j==0?|?j==1)??//?因為0的階乘是1?,1的階乘也是1
j=1;
while(i1)???????//
{
j=j*i;
i--;
}
return(j);
}
4、運行結果如下:
public class Myjiecheng {
public static void main(String[] args) {
String s=JOptionPane.showInputDialog("請輸入你要求幾的階乘:");
if(s!=null s.length()0){
try{
int n=Integer.parseInt(s);
int sum=1;
for(int i=1;i=n;i++){
sum=sum*i;
}
JOptionPane.showMessageDialog(null, n+"的階乘是"+sum);
}catch(Exception e){
JOptionPane.showMessageDialog(null, "輸入的不是數字");
}
}
}
樓主,系統提示你少括號,讓你插入一個括號在結束塊,說的很明白啊
你在最后加個括號就沒錯啦...
public?class?example2?{
static?long?calcFactorial(int?n){
long?factorial=1;
if(n1||n20){
System.out.println("輸入錯誤!");
}
for(int?i=n;i=1;i--){
factorial*=i;
}
System.out.println("請輸入不超過20的正整數n:");
for(int?i=1;i=n;i++){
System.out.printf("最后結果:%d",calcFactorial(n));
System.out.println();
return?factorial;
}?
public?static?void?main(String[]?args){}
}?//-這個是?calcFactorial方法的結束括號,你類example2的結束括號呢?
另外你這個方法能否運行起來?主函數應該寫在class內,而不是calcFactorial方法內