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