C++记录(7)(做题的总结归纳)

咕了好久,才继续更新博客,因为这个疫情在家困了好久,没办法去学校了,毕业设计也停滞了有一会,只能写写理论,没更新也是家里看得严不让怎么玩电脑(其实是自己懒233333)

文前老规矩继续放首歌
很喜欢崩坏3竹雀坡的背景音乐
上次是记录到了字符串的部分,本来想继续写基础部分的,但是最近在做题,感觉有好多值得记录的,所以先把基础部分放一放,先记录刷题中遇到的一些题目

斐波拉契数列

斐波拉契数列的实现有好多,我从网上看到的基本分两种,一种是中规中矩使用普通的方法没用时间复杂度和空间复杂度来求,还有一种是用递归,迭代的方式来求,这种方法相对浪费时间和资源,不过我还是偏向于递归迭代,因为感觉要方便很多。

1.一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。

int jumpFloor(int number)
{
	if(number == 0 || number == 1 || number == 2)
	{
		return number;
	}
	else 
	{
		return jumpFloor(number - 1 ) + jumpFloor(number -2);
	}
};

另一种不是用迭代的方法

int jumpFloor(int number)
{
	int p1 = 0,p2 = 1,sum = 0;
	if(number == 0)//如果一开始的数为0 的话就没必要继续往下了,返回0;
	{
	return 0;
	}
	else
	{
		for(int idn = 2; idn <=number; ++idn)
		{
			p2 +=p1;//求得第二个数的值
			p1 -+p2;//求得第一个数的值
			sum = p1 +p2;//求和
		}
		return res;
	}
};

猜你喜欢

转载自blog.csdn.net/qq_39750907/article/details/104815359