CCPC 长春 2016 Triangle Fib数列

来源:互联网 发布:cr2批量转换软件 编辑:程序博客网 时间:2024/05/03 00:46

Problem Description
Mr. Frog has n sticks, whose lengths are 1,2, 3⋯n respectively. Wallice is a bad man, so he does not want Mr. Frog to form a triangle with three of the sticks here. He decides to steal some sticks! Output the minimal number of sticks he should steal so that Mr. Frog cannot form a triangle with
any three of the remaining sticks.

Input
The first line contains only one integer T (T≤20), which indicates the number of test cases.

For each test case, there is only one line describing the given integer n (1≤n≤20).

Output
For each test case, output one line “Case #x: y”, where x is the case number (starting from 1), y is the minimal number of sticks Wallice should steal.

Sample Input
3
4
5
6

Sample Output
Case #1: 1
Case #2: 1
Case #3: 2

题解:

数据不多,直接在纸上推出来就好,有规律,发现不能组成的都是fib数列两项之和中间的数。

代码:

#include <iostream>#include <cstdio>using namespace std;int a[21] = {0,0,0,0,1,1,2,3,3,4,5,6,7,7,8,9,10,11,12,13,14};int main(){    int T;    scanf("%d",&T);    int ks=1;    while(T--)    {      int n;      scanf("%d",&n);      printf("Case #%d: %d\n",ks++,a[n]);    }    return 0;}