B - Triangle
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≤20T≤20), which indicates the number of test cases.
For each test case, there is only one line describing the given integer n (1≤n≤201≤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
本题的主要意思是在讲给一个数n 即从1——n的数最少去掉n个数,剩余的任意三个数都不可以组成三角形。输出n的值。
这里可以想到一个函数它的的所有的任意三个数都不能组成一个三角形。这个函数就是斐波那契数列。如下
1 2 3 5 8 13 21 34
所以说 的在n个数中把不是此函数中的数删去即可。
#include<stdio.h>
#include<algorithm>
int main()
{
int t,n,j;
int i=0;
int a[6]={1,2,3,5,8,13};
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
for(j=0;j<6;j++)
{
if(n<a[j])
break;
}
printf("Case #%d: %d\n",++i,n-j);
}
return 0;
}