我是靠谱客的博主 娇气手套,最近开发中收集的这篇文章主要介绍青蛙跳台阶(递归和迭代),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

题目描述:青蛙一次可以跳1级或2级台阶,n级台阶,一共有几种跳法?
分析:n = 1 时,只有1种跳法
n = 2 时,青蛙可以两次都跳1级,也可以一次跳2级,共2种跳法
n > 2 时,第一次可以跳 1 级台阶 或者 2 级台阶 (类似斐波那契数),即 f(n) = f(n - 1) + f(n -2);

递归

#include <stdio.h>
int step(int n);
int main()
{
	int n = 0;
	scanf("%d", &n);
	printf("%d", step(n));
	return 0;
}
int step(int n)
{
	if (1 == n)
	{
		return 1;
	}
	else if (2 == n)
	{
		return 2;
	}
	else
	{
		return step(n - 1) + step(n - 2);
	}
}

迭代

#include <stdio.h>
int step(int n);
int main()
{
	int n = 0;
	scanf("%d", &n);
	printf("%dn", step(n));
	return 0;
}
int step(int n)
{
	int i = 0;
	int n1 = 1;
	int n2 = 2;
	int sum = 0;
	for (i = 3; i <= n; i++)
	{
		sum = n1 + n2;
		n1 = n2;
		n2 = sum;
	}
	//n = 1 和 n = 2 需要单独讨论
	if (1 == n)
	{
		return n1;
	}
	else if (2 == n)
	{
		return n2;
	}
	else 
	{
		return sum;
	}
}

//如有错误,欢迎指正

最后

以上就是娇气手套为你收集整理的青蛙跳台阶(递归和迭代)的全部内容,希望文章能够帮你解决青蛙跳台阶(递归和迭代)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部