c++求数列第n项值:1,2,3,6,11,20,37,68,125,.....例如:第7项为37

c++求数列第n项值:1,2,3,6,11,20,37,68,125,230,.....例如:第7项为37,第9项为125。

规律是前三项和

#include <stdio.h>

int main(void) { 
    int n;
    printf("请输入n的值:");
    scanf("%d",&n);
    if(n==1){
        printf("第1项为1\n");
    }else if(n==2){
        printf("第2项为2\n");
    }else if(n==3){
        printf("第3项为3\n");
    }else{
        int f1=1,f2=2,f3=3;
        int i,fn;
        for(i=4;i<=n;i++){
            fn=f1+f2+f3;
            f1=f2;
            f2=f3;
            f3=fn;
        }
        printf("第%d项为%d\n",n,fn);
    }
    return 0;
}

 

    int a = 1, b = 2, c = 3,n,s;
	do 
	{
		cout << "请输入n的值(n为正整数):";
		cin >> n;
	} while (n<=0);
	
	if (n == 1)
		s = a;
	else if (n == 2)
		s = b;
	else if (n == 3)
		s == c;
    else
   {
	 for (int i = 3; i < n;i++)
	 {
		 s= a + b + c;
		 a = b;
		 b = c;
		 c = s;
	  }
    }
	printf("第%d项的值为%d\n", n,s);


 

建议用递归

int fun(int n){

    if(n==1||n==2) return n;

    else  return fun(n-2)+fun(n-1);

}