【算法】设计并实现计算数列第n项的递归算法,通过打印输出整个数列以验证算法的正确性(C++源码)

【算法】设计并实现计算数列第n项的递归算法,通过打印输出整个数列以验证算法的正确性(C++源码)

一、设计

设计并实现计算数列第n项的递归算法,通过打印输出整个数列以验证算法的正确性
整数数列的首项a1=1,后续奇数项和偶数项的计算公式分别为:
a2n=a2n-1 + 2
a2n+1 = a2n-1+ a2n -1

二、设计思路

① 首先设置while循环碰到〇时弹出,可设置成while(1);
② 定义f(x)函数,运用递归,第一项为1,之后偶数项为前一项奇数项加2,奇数项为后两项之和减1;
③ 判断x是否为1,若为1,则返回1,若不为1则进行递归函数。

三、源代码(C++)

#include<iostream>

using namespace std;

int f(int x);

int main()
{
    
    
	while(1)
	{
    
    
		cout<<"Please enter a sequence size:";
	    int n;
	    cin>>n;
	    if(n == 0)
	    	break;
	    for(int i = 1; i <= n; i++)
	    	cout<<f(i)<<" ";
	    cout << endl;
	}
    
	return 0;
}

int f(int x)
{
    
    
    if(x==1) return 1;
    if(x%2 == 1) 
    	return f(x-1)+f(x-2)-1;
    else
    	return f(x-1) + 2;
}

猜你喜欢

转载自blog.csdn.net/Gyangxixi/article/details/113441406