秃头的直上


私信TA

用户名:TTDZS

访问量:2636

签 名:

等  级
排  名 16560
经  验 800
参赛次数 0
文章发表 10
年  龄 0
在职情况 学生
学  校 桂林电子科技大学
专  业

  自我简介:

解题思路:
递归

一个是SN的递归

一个是AN的递归


递归的三大要素

第一要素:明确你这个函数想要干什么

第二要素:寻找递归结束条件

第三要素:找出函数的等价关系式


作者:帅地
链接:https://www.zhihu.com/question/31412436/answer/683820765
来源:知乎
这个作者写的递归的理解对我这种小白来说真的非常好理解,可以去看看

注意事项:

 1.报错warning: character constant too long for its type,可能是cout<<’ xxxxxxxxxxx ’ 是不是使用单引号了,改成双引号就可以了。


参考代码:

#include<iostream>
using namespace std;

void an(int y,int n)
{
	if(y==n)
	{
		cout<<"sin("<<n<<')';
		return ;
	}
	
	if(y%2==1)
	{
		cout<<"sin("<<y<<'-';
		an(y+1,n);
		cout<<')';
	}
		
	if(y%2==0)
	{
		cout<<"sin("<<y<<'+';
		an(y+1,n);
		cout<<')';
	}
		

}

int  sn(int x,int n)
{
	if(x==1) 
	{
		an(1,x);
		cout<<'+'<<n+1-x;
		return 0;
	}
	cout<<'(';
	sn(x-1,n);
	cout<<')';
	an(1,x);
	cout<<'+'<<n+1-x;
}

int main()
{
	int n;
	cin>>n;
	sn(n,n);
	return 0;
}


 

0.0分

0 人评分

  评论区

  • «
  • »