#include//定义结点

struct point

{

int num ; //当前结点所在位置,从0开始算起,依次类推

int sign ; //标志位,检查是否被查找过,0代表未被查找,1代表已经被查到过

struct point *next ;

};

int main(void)

{

int n , m; // n 代表洞 , m代表跨越查找步长

printf("please input number n and m : \n");

scanf("%d",&n);

scanf("%d",&m);

struct point *p = NULL;

struct point *s = NULL;

//循环遍历,依次创建 n 个结点

for(int i = 0 ; i < n ; i++)

{

if(i == 0) //创建第一个结点

{

p = (struct point * )malloc(sizeof(struct point)) ;

p->num = i;

p->sign = 0;

p->next = p;

}

else //在第一个结点基础上,继续创建余下结点

{

s = (struct point * )malloc(sizeof(struct point)) ;

s->num = i;

s->sign = 0;

s->next = p->next ;

p->next = s;

p = s;

}

}

p = p->next ; //将 p指正回归到最开始那个结点

struct point *q = NULL;

q = p ;

int count = 0;

//开始遍历查找

while(q->sign == 0)

{

q->sign = 1;

count++; //统计找到结点数

int j = 0;

while( j < m) //向前推m步

{

q = q->next;

j++; //控制步长

}

}

if(count < n) //如果count小于 n ,说明有可躲藏点

{

printf("yes, the rabbit have chance of survival, it can hide in the following position:\n");

int j = 0 ;

while( j < n) //输出标志位sign为0的所有结点

{

if(p->sign == 0)

{

printf("%d\t",p->num);

}

p = p->next;

j++;

}

printf("\n");

}

else

{

printf("no, the rabbit had no chance of survival\n");

}

//开始销毁链表

q = p->next ;

count = 0;

while(count < n-1)

{

free(p);

p = q;

q= p->next;

count++;

}

free(p);

return 0;

}

php狼找兔子问题算法,算法 狼找兔子问题相关推荐

  1. 我的算法之狼追兔子问题之Java(while)

    题目:狼追兔子问题(while) 目录: 1.题目 2.解析 3.代码 4.结果 1.题目 一只兔子躲进了10个环形分布的洞中的一个.狼在第一个洞中没有找到兔子,就隔一个洞,到第3个洞去找:也没有找到 ...

  2. 算法之狼羊菜过河问题

    算法之狼羊菜过河问题 1.带羊再带狼 回来时把羊带上 然后把白菜带到对岸 最后把羊带过去 2..带羊再带菜 回来时把羊带上 然后把狼带到对岸 最后把羊带过去 关键点在于羊和两个都有联系,而狼不吃菜,

  3. 【数据结构与算法】狼、羊、菜和农夫过河:使用图的广度优先遍历实现

    [数据结构与算法]狼.羊.菜和农夫过河:使用图的广度优先遍历实现 Java 农夫需要把狼.羊.菜和自己运到河对岸去,只有农夫能够划船,而且船比较小.除农夫之外每次只能运一种东西.还有一个棘手问题,就是 ...

  4. 狼羊菜问题的算法思想和C++实现(二进制状态表示 递归状态转移 回溯 剪枝)

    狼羊菜问题的算法思想和C++实现 狼羊菜问题 把[狼.羊和蔬菜]这三样东西安全地送至河的对面,你能用的工具只有身边的一艘小船.已知,这艘小船很小,当你坐在里面时,其只能搭载[狼.羊和蔬菜]这三样东西中 ...

  5. 兔子是如何吃掉狼和野猪

    兔子是如何吃掉狼和野猪的 一天,一只兔子在山洞前写文章, 一只狼走了过来,问:"兔子啊,你在干什么?" 答曰:"写文章."问:"什么 题目?" ...

  6. 兔子是怎么吃掉狼的[转]

    一天,一只兔子在山洞前写文章, 一只狼走了过来,问:"兔子啊,你在干什么?" 答曰:"写文章."问:"什么题目?"答曰:"< ...

  7. 寓言中的智慧:兔子、狐狸和狼

    在一个充满阳光的午后,一只兔子从她的洞里出来享受好天气.天气好得让她失去警觉,一只 狐狸尾随其后,抓住了她. "我要把她当午餐吃掉!"狐狸说."慢着!"兔子答道 ...

  8. 兔子是怎么把狼吃掉的!(经典)-经典寓意文化传承

    有一天兔子在一个山洞前写东西,一只狼走过来问:"兔子你在写些什么? " 兔子答曰:"我在写论文." 狼又问:"什么题目?" 兔子答曰:&qu ...

  9. 【算法】快速选择算法 ( 数组中找第 K 大元素 )

    算法 系列博客 [算法]刷题范围建议 和 代码规范 [算法]复杂度理论 ( 时间复杂度 ) [字符串]最长回文子串 ( 蛮力算法 ) [字符串]最长回文子串 ( 中心线枚举算法 ) [字符串]最长回文 ...

  10. 贪心算法-01硬币找零问题

    硬币找零问题 前言 所谓贪心算法,就是遵循某种既定原则,不断选取当前条件下最优的选择来构造每一个子步骤的解决方案,直到获得问题最终的求解.即在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不 ...

最新文章

  1. 与大佬零距离交流,在行业报告留名,智源社区招募兼职编辑!
  2. 使用 EF Core 的 EnableRetryOnFailure 解决短暂的数据库连接失败问题
  3. 算法2:判断两个字符串内容是否相同
  4. mysql5.7重置密码windows_MySql 5.7 for Windows 重置root密码
  5. 在Exchange 2010中批量导入用户
  6. id jquery选择器 开头_HTML的id选择器类选择器
  7. 通过stream去重_Java 8 Stream.distinct() 列表去重的操作
  8. Python多重继承时属性的调用顺序
  9. 无法启用数据库中的 Service Broker,因为已存在启用的具有相同 ID 的 Service Broker。...
  10. QQ机器人制作教程,超详细
  11. 加壳、脱壳以及如何病毒免杀技术与原理
  12. 使用mbedtls库实现ftps协议
  13. 单片微机原理与接口技术——8051汇编指令系统与编程基础(2)数据传送指令
  14. SpringCloud Gateway gatewayRequestUrl is missing
  15. 技术支持----用户和产研沟通的桥梁
  16. 获取和设置默认打印机
  17. 【中科院信工所】-2021考研经验-记录一段每天都在思考如何学习的日子
  18. SXT分布式缓存技术公开课的观后感
  19. Java SpringMVC毕业项目实战-学生信息管理系统
  20. 如果我恨一个人,我就领他到中关村买相机。

热门文章

  1. 未来是机器人还是人类的天下?
  2. 人家出轨你为什么那么嗨
  3. Xshell远程连接服务器上的jupyter notebook
  4. [读书总结]大数据时代
  5. GPS定位轨迹抽稀之道格拉斯-普克(Douglas-Peuker)算法详解
  6. MarkMan – 马克鳗,让设计更有爱!
  7. KBMMW-创建自定义服务
  8. 强制退出当前ubuntu命令
  9. 学霸 帝国理工 本科 计算机,帝国理工和剑桥计算机的offer,该去哪个?
  10. 多任务让你走得更慢(很好,转自infoq)