5.13(n)个人围成一圈,1、2、3、1、2、3 报数,报到3的出圈,请问最后一个出圈的人是原来的几号?留下的是原来的几号?
#region 解决方案一 //思路:把所有的位置的值都标为1,,循环判断是3的倍数的位置的值标为2 Console.WriteLine("请输入人数:"); int number = int.Parse(Console.ReadLine()); List<int> lastThree = new List<int>(); int lastResult = 0; int[] intArr = new int[number]; for (int i = 0; i < intArr.Length; i++) { intArr[i] = 1; } int index = 0; int length = intArr.Length; int last = -1; while (length > 1) { for (int i = 0; i < intArr.Length; i++) { if (intArr[i] == 1) { index++; if (index == 3) { if (length==2) { last = i; length--; break; } index = 0; intArr[i] = 2; length--; } } } } for (int i = 0; i < intArr.Length; i++) { if (intArr[i] == 1) { lastResult = i; } } Console.WriteLine("最后一个出圈的人是原来的下标为{0}号,留下来的是原来的{1}号", last,lastResult); Console.ReadLine(); #endregion
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步