2013年9月24日 星期二

TIOJ 1086 放錯的信封

[流水題 :3]



#include<stdio.h>
#include<stdlib.h>
#include<string.h>
long long int dp[20];
long long int f(int n)
{
 if(n<=3)
  return n-1;
 if(dp[n])
  return dp[n];
 return (n-1)*(f(n-1)+f(n-2));
}
int main()
{
 int inp;
 memset(dp,0,sizeof(dp));
 while(scanf("%d",&inp)==1)
 {
  if(inp==0) break;
  printf("%I64d\n",f(inp));
 }
 return 0;
}

沒有留言:

張貼留言