汉诺塔问题和青蛙跳台问题

  1. 汉诺塔问题 
    #define _CRT_SECURE_NO_WARNINGS 1
    #include <stdio.h>
    void hanoi(int n,char a,char b,char c) {
    	if (n == 1) {
    		printf("%c->%c\n", a, c);
    	}
    	else {
    		hanoi(n - 1, a, c, b);
    		printf("%c->%c\n", a, c);
    		hanoi(n - 1, b,a, c);
    
    	}
    }
    int main()
    {
    	char a = 'A';
    	char b = 'B';
    	char c = 'C';
    	//汉诺塔问题
    	hanoi(3, a, b, c);
    	return 0;
    }

    汉诺塔问题注意点:在代码实现过程中不去注重辅助柱子,更加注重目的柱子和起始柱子。

  2. 青蛙跳台阶问题:一只青蛙一次可以跳1个台阶或者2个台阶,n个台阶共有多少跳法?(类似菲波那切数列)
    #define _CRT_SECURE_NO_WARNINGS 1
    #include <stdio.h>
    int jump(int n) {
    	if (n <= 1) {
    		return 1;
    	}
    	else {
    		return jump(n - 1) + jump(n - 2);
    	}
    }
    int main()
    {
    	int n = 0;
    	scanf("%d", &n);
    	int cishu=jump(n);
    	printf("%d\n", cishu);
    	return 0;
    }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值