zoukankan      html  css  js  c++  java
  • KK's Steel菲波那切数列的应用

    Description

    Our lovely KK has a difficult mathematical problem:he has a Nleft( 1leq Nleq {10}^{18} ight) meters steel,he will cut it into steels as many as possible,and he doesn't want any two of them be the same length or any three of them can form a triangle.
     

    Input

    The first line of the input file contains an integer Tleft( 1leq Tleq 10 ight), which indicates the number of test cases. 

    Each test case contains one line including a integer Nleft( 1leq Nleq {10}^{18} ight),indicating the length of the steel.
     

    Output

    For each test case, output one line, an integer represent the maxiumum number of steels he can cut it into.
     

    Sample Input

    1 6
     

    Sample Output

    3

    Hint

    1+2+3=6 but 1+2=3 They are all different and cannot make a triangle.

    把一个数分成不等的数相加 并且这些数任意三个不能构成三角形  

    直接求这个数可以分出多少个菲波那切数

    #include<bits/stdc++.h> 
    __int64 zu[200001];
    int main()
    {	
    	for(__int64 i=2;i<200001;i++)
              {
         	    zu[1]=1;
         	    zu[2]=2;
         	    zu[i+1]=zu[i]+zu[i-1];
    		 }
    	__int64 t,n;
    	scanf("%I64d",&t);
    	while(t--)
    	{
    		 __int64 cut=0;
    		  scanf("%I64d",&n);
    		  if(n<6)
    		  {
    		  	printf("0
    ");
    		  	continue;
    		  }
         	   for(__int64 i=1;i<200001;i++)
         	   {
         	   	n-=zu[i];
         	   	if(n<0)
         	   	{
         	   		  	break;
    				 } 
         	   	cut++;
    			}
    	
    		printf("%I64d
    ",cut);
    	}
    	return 0;
    }


    编程五分钟,调试两小时...
  • 相关阅读:
    BZOJ1033:[ZJOI2008]杀蚂蚁antbuster(模拟)
    BZOJ4001:[TJOI2015]概率论(卡特兰数,概率期望)
    BZOJ1820:[JSOI2010]Express Service 快递服务(DP)
    BZOJ4066:简单题(K-D Tree)
    2110. [NOIP2015普及]金币
    73. 找最佳通路
    cogs 7. 通信线路
    codevs 3295 落单的数
    151. [USACO Dec07] 建造路径
    必备算法之二叉树的相关操作
  • 原文地址:https://www.cnblogs.com/kingjordan/p/12027119.html
Copyright © 2011-2022 走看看