数列增长有一个整数数列,其前三项分别为1、2、3,从第四项开始,每项均为其相邻的前三项之和的1/2。问,该数列从第几项开始,其数值超过某个整数n。

有一个整数数列,其前三项分别为1、2、3,从第四项开始,每项均为其相邻的前三项之和的1/2。问,该数列从第几项开始,其数值超过某个整数n。

img


#include <stdio.h>

int main()
{
 int d1=1,d2=2,d3=3,d4=3,cycle,n;
scanf("%d",&n);
if(d4>n)
  if (d1>n)cycle=1;
  if (d2>n)cycle=2;
  if (d3>n)cycle=3;
else 
  cycle=4;
  while(d4<=n){
  d1=d2;
  d2=d3;
  d3=d4;
  d4=(d1+d2+d3)/2;
  cycle++;
}
printf("%d",cycle);

}

}


#include <iostream>
using namespace std;

int main()
{
    int a = 1,b=2,c=3;
    int d = (a+b+c)/2;
    int n = 4;
    int m;
    cin >> m;
    for(;;)
    {
        if(d > m)
            break;
        else
        {
            a = b;
            b = c;
            c = d;
            d = (a+b+c)/2;
            n++;
        }
    }
    cout << n << endl;
    return 0;
}