C语言编写程序题:求n!的递归函数,要求用MAIN()函数输入n值。

2024-12-07 19:55:23
推荐回答(4个)
回答1:

int fun(int x)
{
if(x==1) return 1;
else return x*fun(x-1);
}
void main()
{
int n;
scanf("%d",&n);
printf("%d\n",fun(n));
}
注意,14!已经超32位int范围了~~
而且,fun函数没有做数据检验,请不要用1~14以外的数作为参数。。。

回答2:

好久没写过C语言的程序了,希望对你有帮助

#include
void main()
{
int n,s;
scanf("%d",&n);
s=funca(n)*funcb(n);
printf("%d\n",s);
}

/* 求n^2 */
int funca(int n)
{
int i,s1;
s1=1;
for(i=1;i<=n;i++)
{
s1=s1*2;
}
return(s1);
}

/* 求n! */
int funcb(int n)
{
int s2;
s2=1;
for(i=n;i<=1;i--)
{
s2=s2*i;
}
return(s2);
}

回答3:

#include "stdio.h"
int fun(int n)
{
if(n==0||n==1) return 1;
else return n*fun(n-1);
}
void main()
{
int n;
scanf("%d",&n);
printf("%d!=%d\n",n,fun(n));
}

回答4:

超过范围,就不要用int嘛,改用long 类型,

long fun(int x)
{
if(x==1) return 1;
else return x*fun(x-1);
}
void main()
{
int n;
scanf("%d",&n);
printf("%ld\n",fun(n));
}