循环结构设计,(我刚刚入门)(鞠躬)

程序设计:一个数列的头三个数是00,1,第四个数是前三个数之和,以后每个都是前三个数之和,问当该数列中的某个数值达到n时(n有键盘输入),它是该数列的第几项?

#include<iostream>
using namespace std;
int main() {
    int n,f1=0,f2=0,f3=1,f4;
    cin>>n;
    if(n==0){
        cout<<1;
        return 0;
    }
    if(n==1){
        cout<<3;
        return 0;
    }
    int p=3;
    do{
        f4=f1+f2+f3;
        f1=f2;
        f2=f3;
        f3=f4;
        p++;
        cout<<"下一项:"<<f4<<endl;
    }while(f4<n);
    if(f4==n){
        cout<<p;
    }else{
        cout<<"数列没有"<<n; 
    }
    return 0;
}


 有帮助请采纳