小明和小红总是喜欢在一起玩。一天,他们又在一起愉快的玩耍了一个下午,到了吃晚饭的时间,他们决定用抛硬币的方法来决定谁请吃晚餐。
规则很简单,他们抛一枚均匀的硬币N次,如果出现连续两次或更多正面朝上的情况,那么就是小红请,否则就是小明请。
现在小明想知道,抛N次的所有情况下,会有多少种没有任何两次连续正面朝上的情况。
输入描述
有多组测试数据,请处理到文件结束。
每组测试数据仅包含一个数N(1 <= N <= 1000),表示抛掷的次数。
输出描述
每组数据输出一行,格式为Case #k: Ans, k从1开始, Ans表示答案.
由于答案可能会很大,输出Ans % (10^9 + 7)即可.
输入样例
1 2
输出样例
2 3
一次愉快的坑爹水题 输出那里要加入Case #k: ans
这里居然没说明
#include <stdio.h>
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;
}