重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
用递归算法就可以搞定了哦!
创新互联是一群有想法、有热情,对互联网抱有执着信念的年轻人,愿用自己的智慧和热情,帮助您使用好互联网工具,成为您的建站英雄,成为您网站制作和网络营销的“秘密武器”,专注于网站策划、备案、空间域名、设计、后台开发、关键词优化排名、运营管理、维护服务、微信网站、移动网站建设,网站上线不是大家合作的终结,相反,网站维护才刚刚开始,我们期待常年累月的网站运行过程总着为您提供更多的支持。我们致力于解决问题,创造价值,不推诿,主动承担。
public int factorial(int n) {
if(n == 0 || n == 1) { //当n是0或者1的时候,阶乘结果就是0
return 1;
}
else { //当 n 大于0 的时候,阶乘的结果就是 n*(n-1)*(n-2)* 。。。。
return n* factorial(n-1);
}
}
帮到你了别忘了采纳
class test{ public static void main(String[] args){ fun f=new fun(); for(int i=0;i=5;i++) System.out.print(f.fact1(i)+" "); System.out.println(); for(int i=0;i=5;i++) System.out.print(f.fact2(i)+" "); System.out.println(); long [] p=f.fact3(5); for(int i=0;ip.length;i++) System.out.print(p[i]+" "); System.out.println(); } } class fun{ long fact1(int n){ long result=1; if(n==0)return 0; for(int i=1;i=n;i++) result=result*i; return result; } long fact2(int n){ if(n==0)return 0; if(n==1)return 1; else return n*fact2(n-1); } long [] fact3(int n){ long [] result=new long[n+1]; result[0]=0; result[1]=1; for(int i=2;i=n;i++) result[i]=result[i-1]*i; return result; } }
亲测可用
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);
}
输出的结果是2561327494111820313
扩展资料:
一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。1808年,基斯顿·卡曼引进这个表示法。
亦即n!=1×2×3×...×n。阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×n。
计算方法:
大于等于1:
任何大于等于1 的自然数n 阶乘表示方法:n! = 1×2×3×...×(n-1)n或n! = n×(n-1)!
0的阶乘:0!=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));
}
}
//控制台数据自己获取.
int[] kim = new int[]{6,5,4,3,2,1}//这是应该从控制台获取
//递归方式获取阶乘
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)