【程序69】
题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
方法一
- @echo off & setlocal enabledelayedexpansion
- set /p n=请输入一个数:
- for /l %%i in (%n% -1 1) do set total= %%i !total!
- set count=%n%
- :loop
- if !count! neq 1 (
- for %%i in (%total%) do (
- set /a num+=1
- if !num! equ 3 (
- set num=0
- set total=!total: %%i =!
- set /a count-=1
- )
- )
- goto loop
- )
- echo 最后留下的序号为:%total%
- pause>nul
复制代码
方法二
- @echo off
- set /p n=请输入一个数:
- set r=0
- for /l %%i in (2,1,%n%) do (set /a a=r+3 && set /a r=a%%%%i)
- set /a r+=1
- echo %r%
- pause>nul
复制代码
|