这个问题是著名的Josephus排列,就是要用指针和链表才是正确的思路。不用指针就暂时放置这题。若有非指针解你完全可以采纳他,若没有用指针正确写的,请结贴。
创新互联是一家专注网站建设、网络营销策划、小程序设计、电子商务建设、网络推广、移动互联开发、研究、服务为一体的技术型公司。公司成立十年以来,已经为1000+边坡防护网各业的企业公司提供互联网服务。现在,服务的1000+客户与我们一路同行,见证我们的成长;未来,我们一起分享成功的喜悦。
此题可用数学方法求解。设有n个人(编号0~(n-1)),从0开始报数,报到(m-1)的退出,剩下的人继续从0开始报数 (用数学方法解的时候需要注意应当从0开始编号,因为取余会取到0解。
//说明:我是ghalan,这是我编的程序,编译通过的。且我用数据模拟验证过的,测试数据都通过了。楼上的那位的答案我验证过不正确了。我的还有详细注释,可以看出明显的编程思想。
你这个数据规模是不要求算法的,仅要求简单模拟。
1、这个问题是著名的Josephus排列,就是要用指针和链表才是正确的思路。不用指针就暂时放置这题。若有非指针解你完全可以采纳他,若没有用指针正确写的,请结贴。
2、建议少用goto,按照你的代码结构,可以简化。
3、请考生编制函数Josegh()实现此功能并调用函数WriteDat()把结果p输出到文件OUT.DAT中。
4、自己写的,完整的程序,并附有测试的数据。分别用链表和顺序表实现了。楼主可以好好看看。http://zhidao.baidu点抗 /question/41182090html?oldq=1 代码我就不重复贴了。
这个问题是著名的Josephus排列,就是要用指针和链表才是正确的思路。不用指针就暂时放置这题。若有非指针解你完全可以采纳他,若没有用指针正确写的,请结贴。
请考生编制函数Josegh()实现此功能并调用函数WriteDat()把结果p输出到文件OUT.DAT中。
你既然用到time函数,头文件应该导入time.h.建议少用goto,按照你的代码结构,可以简化。
此题可用数学方法求解。设有n个人(编号0~(n-1)),从0开始报数,报到(m-1)的退出,剩下的人继续从0开始报数 (用数学方法解的时候需要注意应当从0开始编号,因为取余会取到0解。
楼上的太麻烦,这个问题的经典例题是猴子选大王。
for(i=0;i++),此处for循环没有给出上限,return 0 跟在printf 后面使得遇到第一个满足条件的数时即跳出for循环。否则会找出所有满足条件的数,程序不会自动结束。