首页 > 代码库 > Triangle

Triangle

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)

Total Submission(s): 1057    Accepted Submission(s): 656


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 (T20), which indicates the number of test cases. 

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

 

 

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

 

 

//题意, n 个数, 1-n 现要使任意三个数作为三角形三条边都不能成功,问至少需要删除几个数

//认真的模拟算了算,发现就是斐波那契数列。。。能保留下来的数是 1,2,3,5,8,13,21 ... ...

干脆打表过

技术分享
#include <iostream>#include <cstdio>using namespace std;int cnt, x, cas;int ans[25]={0,0,0,0,1,1,2,3,3,4,5,6,7,7,8,9,10,11,12,13,14};int main(){    scanf("%d", &cas);    for(int i=1;i<=cas;i++){        scanf("%d", &x);        printf("Case #%d: %d\n", i, ans[x]);    }    return 0;}
View Code

 

Triangle