取石子

来源:互联网 发布:数据库explode函数 编辑:程序博客网 时间:2024/05/21 11:26

Problem Description

X虽然很爱学习,但也有贪玩的时候。现在有N个石子,X每次可以取一个,两个,或三个。问一共有多少种不同的方法可以将这些石子取完。
对于两种不同的方法的定义:两种方法取得次数不一样,或者在第i次时取得数目不一样。

Input

多组输入。

每组输入一个整数N(N <=35),代表一共有N个石子。

Output

对于每组输入,输出一个整数,代表有多少种方案。

Example Input

1235

Example Output

121132436852

Hint

Author


#include<stdio.h>long long int g[60];long long int fun(int n){    if(g[n]>0) return g[n];    if(n==1) return g[n]=1;    else if(n==2) return g[n]=2;    else if(n==3) return g[n]=4;    else return g[n]=(fun(n-1)+fun(n-2)+fun(n-3));}int main(){    int i,n;    long long int m;    while(~scanf("%d",&n))    {        if(n<=0) printf("0\n");        else {            m=fun(n);            printf("%lld\n",m);        }    }    return 0;}


0 0
原创粉丝点击