用递归方法编写一个求阶乘的子函数,主函数调用该子函数,输入正整数n,求n!
展开全部
#include <stdio.h>
int step(int x){ //递归函数,返回阶乘结果
if (x>1) { //参数=1为出口,返回1
return x*step(x-1);//返回当前数与比当前数小一的数的阶乘的积
}
return 1;
}
int main(){
int n;
scanf ("%d",&n);
printf ("%d",step(n));
return 0;
}
int step(int x){ //递归函数,返回阶乘结果
if (x>1) { //参数=1为出口,返回1
return x*step(x-1);//返回当前数与比当前数小一的数的阶乘的积
}
return 1;
}
int main(){
int n;
scanf ("%d",&n);
printf ("%d",step(n));
return 0;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
int jc(int n)
{
if (n>1)
return n * jc(n-1);
else
return n;
}
main()
{
int n;
printf("input a number:");
scanf("%d", &n);
printf("%d\n", jc(n));
}
int jc(int n)
{
if (n>1)
return n * jc(n-1);
else
return n;
}
main()
{
int n;
printf("input a number:");
scanf("%d", &n);
printf("%d\n", jc(n));
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include"stdio.h"
float main(void)
{
float fac(int n);
int n;
float y;
printf("请输入n的值\n");
scanf("%d\n",&n);
y=fac(n);
printf("%d!=%10.0f\n",n,y);
}
float fac(int n)
{
float f;
if(n<0)
printf("输入的数据错误,请重新输入!\n");
else if(n==0||n==1)
f=1;
else f=fac(n-1)*n;
return(f);
}
float main(void)
{
float fac(int n);
int n;
float y;
printf("请输入n的值\n");
scanf("%d\n",&n);
y=fac(n);
printf("%d!=%10.0f\n",n,y);
}
float fac(int n)
{
float f;
if(n<0)
printf("输入的数据错误,请重新输入!\n");
else if(n==0||n==1)
f=1;
else f=fac(n-1)*n;
return(f);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询