//控制臺(tái)數(shù)據(jù)自己獲取.
成都創(chuàng)新互聯(lián)于2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站制作、成都做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元廣元做網(wǎng)站,已為上家服務(wù),為廣元各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:13518219792
int[] kim = new int[]{6,5,4,3,2,1}//這是應(yīng)該從控制臺(tái)獲取
//遞歸方式獲取階乘
private int getJc(int k){
if(k=1){
return 1;
}else{
return k*getJc(k-1);
}
}
int result=0;
String buffer = "";
for(int i=0;ikim .length;i++){
if(i!=0){
buffer = buffer+" +"+kim[i]+"!";
}else{
buffer=buffer+kim[i] +"!";
}
result =result +kim[i];
}
buffer = buffer+"="+result;
System.out.println(buffer)
樓主這個(gè)程序錯(cuò)的一塌糊涂
都錯(cuò)在基礎(chǔ)知識(shí)上。
稍等一下,我?guī)湍愀?,再額外給你一個(gè)求階乘的方法
import java.util.Scanner;
import java.math.BigInteger;
public class Outer {
public static void main(String[] args) {
int n;
//用do..while循環(huán) 當(dāng)輸入為0時(shí),退出
do {
//從控制臺(tái)獲取一整數(shù)(包括20)
n = new Scanner(System.in).nextInt();
//把int轉(zhuǎn)化成BigInteger類型
BigInteger result = BigInteger.valueOf(1);
//利用循環(huán)求出n!
for(int i = 2; i = n; i++) {
BigInteger b1 = BigInteger.valueOf(i);
result = result.multiply(b1);
}
System.out.println(result);
} while(n != 0);
}
}
方法二:用遞歸
import java.util.Scanner;
public class Test{
public static void main(String[] args) {
int input = new Scanner(System.in).nextInt();
int result = DiGui(input);
System.out.println(result);
}
//用遞歸求階乘
public static int DiGui(int n) {
if(n == 1) {
return 1;
}
return n * DiGui(n - 1);
}
}
源代碼:
package test;
public class 階乘 {
public static int jieCheng(int i){
return (i==1)?1:jieCheng(i-1)*i;
}?? ?
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(jieCheng(3));
System.out.println(jieCheng(4));
}
}
按照你的要求編寫的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));
}
}
親測(cè)可用
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
擴(kuò)展資料:
一個(gè)正整數(shù)的階乘(factorial)是所有小于及等于該數(shù)的正整數(shù)的積,并且0的階乘為1。自然數(shù)n的階乘寫作n!。1808年,基斯頓·卡曼引進(jìn)這個(gè)表示法。
亦即n!=1×2×3×...×n。階乘亦可以遞歸方式定義:0!=1,n!=(n-1)!×n。
計(jì)算方法:
大于等于1:
任何大于等于1 的自然數(shù)n 階乘表示方法:n! =?1×2×3×...×(n-1)n或n! = n×(n-1)!
0的階乘:0!=1。
參考資料:百度百科——階乘