n!=n*(n-1)*(n-2)....*2*1
这个公式可以通过一个java的循环来实现,也就是第一种方法。
for(int i=numberi>0i--)
这个循环在i=0的时候结束, 而阶乘的结果通过result*=i来计算。
public static int compute(int number)
{
int result=1
for(int i=numberi>0i--){
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
}
这个好办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*=ii++
if(i>10||i<0)break}
while(i<10||i>0)
System.out.println(r)
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)