你的组合数学学得如何?

 
   

小明和小红总是喜欢在一起玩。一天,他们又在一起愉快的玩耍了一个下午,到了吃晚饭的时间,他们决定用抛硬币的方法来决定谁请吃晚餐。

规则很简单,他们抛一枚均匀的硬币N次,如果出现连续两次或更多正面朝上的情况,那么就是小红请,否则就是小明请。

现在小明想知道,抛N次的所有情况下,会有多少种没有任何两次连续正面朝上的情况。



输入描述

 
   

有多组测试数据,请处理到文件结束。

每组测试数据仅包含一个数N1 <= N <= 1000),表示抛掷的次数。

 


输出描述

 
   

每组数据输出一行,格式为Case #k: Ans, k1开始, Ans表示答案.

由于答案可能会很大,输出Ans % (10^9 + 7)即可.



输入样例

1
2

输出样例

 
   

2 3


一次愉快的坑爹水题  输出那里要加入Case #k: ans

这里居然没说明

#include 
long long mod=1e9+7;
int main()
{
    long long s[1005],x[1005];
    int i;
    s[1]=1;
    x[1]=1;
    s[2]=1;
    x[2]=2;
    for(i=3;i<=1000;i++)
    {
        s[i]=x[i-1]%mod;
        x[i]=(x[i-1]+s[i-1])%mod;
    }
    int n;
    i=1;
    while(~scanf("%d",&n))
    {
        printf("Case #%d: %lld\n",i++,(s[n]+x[n])%mod);
    }
    return 0;
}



你可能感兴趣的:(c/c++,dp,最爱水题)