- 实例过了但还是错了/-_-
#include<stdio.h>
double focal(int n,double sum);
void print(long int N,int n,int sum);
int main()
{
long int N;
while(scanf("%ld",&N)!=EOF)
print(N,18,0);
return 0;
}
double focal(int n,double sum)
{
if(n>1)
return focal(n-1,sum*n);
return sum;
}
void print(long int N,int n,int sum)
{
if(focal(n,1)>N)
return print(N,n-1,sum);
else if(focal(n,1)<N)
return print(N-focal(n,1),n,sum+1);
else if(N==1||focal(n,1)==N)
printf("%d\n",sum+1);
}