有一个整数数列,其前三项分别为1、2、3,从第四项开始,每项均为其相邻的前三项之和的1/2。问,该数列从第几项开始,其数值超过某个整数n。
#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;
}