#include
long long int f(int n)
{
int i;
long long int m=1;
for(i=1;i<=n;i++)
m=m*i;
return m;
}
int main(int argc, char *argv[])
{
int a;
scanf("%d",&a);
printf("%d!=%lld",a,f(a));
return 0;
}
求大佬帮助寻找错误
你的程序不满足题意,没有用递归,递归写法如下:
int f(int n)
{
if (n == 1) return 1;
return f(n - 1) * n;
}
你的代码没错,但题目要求返回的是int 不是 long long。
#include<stdio.h>
int f(int n)
{
int i;
int m=1;
for(i=1;i<=n;i++)
m=m*i;
return m;
}
int main(int argc, char *argv[])
{
int a;
scanf("%d",&a);
printf("%d!=%d",a,f(a));
return 0;
}