NEFU 1142 表哥的面包

来源:互联网 发布:点餐宝电脑软件价格 编辑:程序博客网 时间:2024/04/28 21:34

表哥的面包

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

16

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;}

 

0 0
原创粉丝点击