c语言编程:用递归实现计算n!。
展开全部
#include<stdio.h>
float face(int n)
{
float f;
if(n<0)
printf("n<0, dataerror!");
else if(n==0||n==1)
f=1;
else
f=face(n-1)*n;
return(f);
}
main()
{
int n;
float y;
printf("input a integer number:");
scanf("%d",&n);
y=face(n);
printf("%d!=%15.0f",n,y);
}
绝对正确
float face(int n)
{
float f;
if(n<0)
printf("n<0, dataerror!");
else if(n==0||n==1)
f=1;
else
f=face(n-1)*n;
return(f);
}
main()
{
int n;
float y;
printf("input a integer number:");
scanf("%d",&n);
y=face(n);
printf("%d!=%15.0f",n,y);
}
绝对正确
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这样子写程序就可以了,vc6下验证成功
#include<stdio.h>
void main()
{
long int sum=0;
long int count(int n);
int n;
printf("input n=");
scanf("%d",&n);
printf("result is %ld\n",count(n));
}
long int count(int n)
{
if(n>1)
return n*count(n-1);
else
return 1;
}
#include<stdio.h>
void main()
{
long int sum=0;
long int count(int n);
int n;
printf("input n=");
scanf("%d",&n);
printf("result is %ld\n",count(n));
}
long int count(int n)
{
if(n>1)
return n*count(n-1);
else
return 1;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
算递归最好用double类型,否则很容易溢出。
#include<stdio.h>
double fact(double x)
{
if(x==0)
return 1;
else
return fact(x-1) * x;
}
int main()
{
int x;
scanf("%d", &x);
printf("%f", fact(x));
return 0;
}
#include<stdio.h>
double fact(double x)
{
if(x==0)
return 1;
else
return fact(x-1) * x;
}
int main()
{
int x;
scanf("%d", &x);
printf("%f", fact(x));
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
输入n>=0,则返回n!,否则返回-1
#include<stdio.h>
void main()
{
long int sum=0;
long int count(int n);
int n;
printf("input n=");
scanf("%d",&n);
printf("result is %ld\n",count(n));
}
long int count(int n)
{
if(n>1)
return n*count(n-1);
if(n==1||n==0)
return 1;
else
return -1;
}
#include<stdio.h>
void main()
{
long int sum=0;
long int count(int n);
int n;
printf("input n=");
scanf("%d",&n);
printf("result is %ld\n",count(n));
}
long int count(int n)
{
if(n>1)
return n*count(n-1);
if(n==1||n==0)
return 1;
else
return -1;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询