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以外的数作为参数。。。
好久没写过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);
}
#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));
}
超过范围,就不要用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));
}