趣味算法-青蛙过河

这篇博客探讨了趣味编程问题——青蛙过河。通过设定规则,每次仅允许一只青蛙移动,检查不同情况如青蛙跳过对方到达空石,分析了算法的逻辑及复杂度,算法复杂度为O(N * (N/2))。
摘要由CSDN通过智能技术生成

趣味编程-青蛙过河:


两队青蛙,河左边3只,右边3只,青蛙过河要踩着石头,每次移动青蛙最多可以跳过对面的一只青蛙,但必须落在空的石头上。


diagram


算法原则:

每次只移动一只青蛙。

1)  检查整个路径左侧青蛙越过右侧青蛙跳到空白石头上的情况;

2)  检查整个路径右左侧青蛙越过左侧青蛙跳到空白石头上的情况;

3)  检查整个路径左侧青蛙可以直接向右移动到空白石头上的情况,并且保证移动后向左的青蛙会与向右的青蛙相邻;

4)  检查整个路径右侧青蛙直接向左移动到空白石头上的情况,并且保证移动后向右的青蛙会与向左的青蛙相邻;


到达对岸时结果 +1;


#include <stdio.h>

void print_road(int arrRoad[], int nLen)
{
    int i = 0;

    for (i = 0; i < nLen; i++)
    {
        if (arrRoad[i] < 0)
            printf("-> ");
        else if (arrRoad[i] > 0)
            printf("<- ");
        else
            printf(&#
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值