首页 > 其他 > 详细

NEFU 1142 表哥的面包

时间:2016-04-21 11:30:58      阅读:155      评论:0      收藏:0      [点我收藏+]

表哥的面包

Problem:1142

Time Limit:1000ms

Memory Limit:65535K

Description

可爱的表哥遇到了一个问题,有一个长为N(1≤N≤10^18)的长条状面包,问最多可以切成几段,使得每段面包的长度互不相等且均不能围成三角形。

Input

第一行一个T(1≤T≤10),表示T组数据
接着T行,每行一个整数N(1≤N≤10^18)表示面包的长度

Output

输出可以分成的段数

Sample Input

1
6

Sample Output

3

Hint

可以分成三段,每段长度是1,2,3

Source

题解:斐波那契数列

#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
    int i;
    long long  a[105];
    a[1]=1,a[2]=2;
    for(i=3;i<=90;i++)
    a[i]=a[i-1]+a[i-2];
    for(i=2;i<=90;i++)
    a[i]=a[i]+a[i-1];
    long long n,t;
    scanf("%lld",&t);
    while(t--)
    {
        scanf("%lld",&n);
// 是 互 不 相 等  不能出现两个1 永远也不能出现 不是2的时候不能出现
        for(i=1;i<=90;i++)
        {
            if(a[i]>n)
            break;
        }
        cout<<i-1<<endl;
    }
    return 0;
}

 

NEFU 1142 表哥的面包

原文:http://www.cnblogs.com/Ritchie/p/5416130.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!