朱德权:C语言高手进啊

来源:百度文库 编辑:高考问答 时间:2024/04/29 05:11:36
15个基督教和15个异教徒同乘一船航行。途中风浪很大,危险万状,领航人告诉大家,只有将全船人的一半投入海中,其余人始能幸免。大家赞成这个办法,并议定30人围成一圈,由第一人数起,挨个报数,每数到第9个人,便把他投入海中,循环进行,直到剩下第15个人为止,问如何排法,方使每次投海者皆是异教徒?
要求:把输入扩展到人数:N个基督教和M个异教徒的情况,数到第K个人,0<N,M,K<50,并把结果同时输出到文件:output.txt

1)定义一个循环链表(其实数组也一样)共M+N个结点。
2)数9个,遇到的那个结点做上标记,遇到带标记的结点不计数,这样每计数满9个,就做一个标记。
3)再定义一个计器,做标记时,记数器加1
4)当记数量达到要求的数量时,就结束,把未做标记的位置输出。

是个老题新出,在很多数上有把,但不会,

人工智能的教材就有着个题,你可以看看,这个问题不是一句话两句话能够说明白的。有很多方法,比如,又会诉法,或者深度优先==
都是很复杂的算法。
我学过那门课程,不难,自己看足够能看明白了。

用循环链表做吧~!~!
很简单的!~~!
就一个报数的问题~~!~1
把每个出局的数字都放到一个数组里面去就行了~~
这个数组里面的这些个数字给异教徒编上号不就行了啊~~!~
而且还是活的!~! 想怎么加人就怎么加人~!~!