用递归方式求出阶乘的值。递归的方式为: 5!=4!*5 4!=3!*4 3!=2!*3 2!=1!*2 1!=1 即要求出5!先求出4!。。
要求:定义一个函数(或方法),用于求阶乘的值。在主函数(或主方法)中调用该递归函数(或方法),求出5的阶乘,并输出结果。...
要求:
定义一个函数(或方法),用于求阶乘的值。
在主函数(或主方法)中调用该递归函数(或方法),求出5的阶乘,并输出结果。 展开
定义一个函数(或方法),用于求阶乘的值。
在主函数(或主方法)中调用该递归函数(或方法),求出5的阶乘,并输出结果。 展开
展开全部
#include<iostream.h>
#include<stdio.h>
void digui(int x,int sum,int i){
if(i==1){
sum=x*(x-1);
x=x-2;
i--;//判断是否为第一次
}
else{
sum=sum*x;
x--;
}
if(x==1){
cout<<sum<<endl;//当阶乘到1的时候结束,输出所求阶乘值
}
else{
digui(x,sum,i);
}
}
void main(){
digui(5,0,1);
/*5即是你要求的系数,0是两个数的积(第一次运算即为5x4),先让其初始值为0,1为指示号码,因为第一次的算法跟后面的递归不一样,
所以要分开判断,第一次后让i归0,执行后面的递归,因为第一次的总和sum=x*(x-1),但后面的sum递归算法是sum*x;
*/
}
#include<stdio.h>
void digui(int x,int sum,int i){
if(i==1){
sum=x*(x-1);
x=x-2;
i--;//判断是否为第一次
}
else{
sum=sum*x;
x--;
}
if(x==1){
cout<<sum<<endl;//当阶乘到1的时候结束,输出所求阶乘值
}
else{
digui(x,sum,i);
}
}
void main(){
digui(5,0,1);
/*5即是你要求的系数,0是两个数的积(第一次运算即为5x4),先让其初始值为0,1为指示号码,因为第一次的算法跟后面的递归不一样,
所以要分开判断,第一次后让i归0,执行后面的递归,因为第一次的总和sum=x*(x-1),但后面的sum递归算法是sum*x;
*/
}
2018-03-28
展开全部
public static void main(String[] args)
{ int Factorial5 = Factorial(5);
System.out.println("5! is " + Factorial5); }
static int Factorial(int n)
{ if (n < 0)
System.out.println("输入的数据错误!");
if (n == 0 || n == 1)
return 1;
else
return Factorial(n - 1) * n; }
}
{ int Factorial5 = Factorial(5);
System.out.println("5! is " + Factorial5); }
static int Factorial(int n)
{ if (n < 0)
System.out.println("输入的数据错误!");
if (n == 0 || n == 1)
return 1;
else
return Factorial(n - 1) * n; }
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询