hdu5914 Triangle _数论

 

Triangle

 

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 937    Accepted Submission(s): 596

 

 

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

 

 

 

找规律:最后剩下的边是斐波那契数列就可以了,这样就保证了任意三个都不能组成三角形
//
//  Created by Admin on 2017/3/12 
//
#include
int main(){
	int t,n,count=0,f[21];
	scanf("%d",&t);
	f[1]=1;f[2]=2;
	for(int i=3;i<=10;i++){
		f[i]=f[i-1]+f[i-2];
	}
	while(t--){
		int ans=0;
		scanf("%d",&n);
		for(int i=1;i<=10;i++){
			if(f[i]>n){
				printf("Case #%d: %d\n",++count,n-i+1);
				break;
			}
		}
	}
	return 0;
}

/*
#include
int main(){
	int t,n,count=0,ans[21]={0,0,0,1,1,2,3,3,4,5,6,7,7,8,9,10,11,12,13,14};
	scanf("%d",&t);
	while(t--){
		scanf("%d",&n);
		printf("Case #%d: %d\n",++count,ans[n-1]);
	}
	return 0;
} 
*/

 

 

 

 

 

 

 

你可能感兴趣的:(HDOJ)