有n个人编号为1~n排成一个环从1号人开始从1到m报数报到m的人离开该环从下一个人开始继续从1到m报数报到m的人离开该环这样一直进行下去直到最终剩余p个人。从键盘输入n、m、p要求n>=2、m>=2、p<n输出最终剩余的p个初始编号。解决该问题的思路 方法和流程
解决该问题的思路和方法如下:
-
从键盘输入n、m、p,并进行必要的输入校验,确保n >= 2,m >= 2,p < n。
-
创建一个长度为n的列表,并将1到n的编号依次填入列表。
-
定义一个变量current指向列表的第一个元素(初始为1),用于表示当前报数的人的编号。
-
创建一个循环,直到剩余人数为p为止。
-
在循环中,使用一个变量count来计数当前报数的人,初始为1。
-
在循环中,如果count等于m,则将当前报数的人从列表中移除,并将剩余人数减1。
-
在循环中,如果count不等于m,则将current向后移动一位。
-
在循环中,如果current已经移到列表的末尾,则将current重置为列表的第一个元素。
-
在循环中,将count增加1。
-
循环结束后,输出剩余的p个初始编号。
解决该问题的流程如下:
-
输入n、m、p。
-
进行输入校验。
-
创建一个长度为n的列表,并将1到n的编号依次填入列表。
-
定义一个变量current指向列表的第一个元素(初始为1)。
-
创建一个循环,直到剩余人数为p为止。
-
在循环中,使用一个变量count来计数当前报数的人,初始为1。
-
在循环中,如果count等于m,则将当前报数的人从列表中移除,并将剩余人数减1。
-
在循环中,如果count不等于m,则将current向后移动一位。
-
在循环中,如果current已经移到列表的末尾,则将current重置为列表的第一个元素。
-
在循环中,将count增加1。
-
循环结束后,输出剩余的p个初始编号
原文地址: https://www.cveoy.top/t/topic/hLau 著作权归作者所有。请勿转载和采集!