为什么第二个自定函数中加上if(n<1)返回值正确,如果不加上结果不符合题目要求
这个是不正确的代码
#include <stdio.h>
int sum(int n);
int sum1(int N,int n);
int main()
{
int n;
int num[12];
scanf("%d",&n);
printf("%d ",sum(n));
return 0;
}
int sum(int n)
{
int N=1,a;
a=sum1(N,n);
return a;
}
int sum1(int N,int n)
{
if (n>=1){
N*=n;
n=n-1;
sum1(N,n);
}
return N;
}
这个是正确的
#include <stdio.h>
int sum(int n);
int sum1(int N,int n);
int main()
{
int n;
int num[12];
scanf("%d",&n);
printf("%d ",sum(n));
return 0;
}
int sum(int n)
{
int N=1,a;
a=sum1(N,n);
return a;
}
int sum1(int N,int n)
{
if (n>=1){
N*=n;
n=n-1;
sum1(N,n);
}
if(n<1) return N;
}