一个地主有37个奴隶,一天,他要将37个奴隶杀掉36个,只剩下一个。他让所有的奴隶站在一起,分别编号为1至37,然后让他们从第1开始数,数到第5个时,将其杀死。然后从下一个开始又从1开始数,数到第5个时,将其杀死。直到只剩下一个奴隶时才结束。请用C语言编写程序,将唯一存活的奴隶编号打印出来。
分析:总共有37个奴隶,如下:
第一轮开始时(分别从1、6、11、16、21、26、31、36开始数)奴隶编号:
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37
第一轮杀死后(分别从4、11、17、23、29、36开始数)剩余奴隶:
1 2 3 4 6 7 8 9
11 12 13 14 16 17 18 19
21 22 23 24 26 27 28 29
31 32 33 34 36 37
第二轮杀死后(分别从6、13、21、29、37开始数)剩余奴隶:
1 2 4 6 7 8
11 12 13 14 17 18 19
21 23 24 26 27 29
31 32 33 36 37
第三轮杀死后(分别从8、18、29开始数)剩余奴隶:
1 2 6 7 8
11 13 14 17 18
21 23 24 26 29
31 32 33 37
第四轮杀死后(分别从1、13、24开始数)剩余奴隶:
1 2 6 8
11 13 14 18
21 23 24 29
31 32 33
第五轮杀死后(分别从1、14、31开始数)剩余奴隶:
1 2 6 8
13 14 18
21 24 29
31 32
第六轮杀死后(分别从8、31开始数)剩余奴隶:
1 2 6 8
14 18
21 24
31 32
第七轮杀死后(从14开始数)剩余奴隶:
1 2 8
14 18
21
31 32
第八轮杀死后(分别从1、31开始数)剩余奴隶:
1 2
14 18
21
31
第九轮杀死后(从31开始数)剩余奴隶:
1 2
14 18
31
第十轮杀死后剩余奴隶:
1 2
14
31
第十一轮没有杀死奴隶
第十二轮杀死后(从1开始数)剩余奴隶:
1 2
14
第十三轮没有杀死奴隶
第十四轮杀死后(从14开始数)剩余奴隶:
1
14
最后一轮杀死后剩余奴隶:
1
怎样排除已经被杀死的奴隶编号???
请大家帮帮忙解决一下,急!!!!!!!谢谢!!!