选猴王
题目:在n个猴王中选出一个猴王,规则是每隔几个淘汰一个,一直循环,直到只剩一个猴子
代码:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 namespace SuanFa 6 { 7 class Program 8 { 9 static void Main(string[] args) 10 { 11 //n为输入的猴子的个数,m为每多少个猴子筛选一次 12 //i为猴子的位置,j为筛选猴子的位置 13 int n, count, m, i, j; 14 Console.Write("请输入猴子数:"); 15 n = Convert.ToInt32(Console.ReadLine()); 16 Console.Write("请输入要筛选的个数:"); 17 m = Convert.ToInt32(Console.ReadLine()); 18 int[] monkey = new int[n]; 19 count = n; //储存每次筛选后的猴子个数 20 for (i = 0; i < n; i++) 21 { 22 monkey[i] = 1; 23 } 24 i = 0; j = 0; 25 while (count > 1) 26 { 27 while(monkey[i%n]==0) 28 { 29 i = (i + 1) % n; 30 } 31 j = (j + 1) % m; 32 if (j == 0) 33 { 34 monkey[i % n] = 0; 35 count--; 36 } 37 i = (i + 1) % n; 38 } 39 for (i = 0; i < n; i++) 40 { 41 if (monkey[i] == 1) 42 { 43 Console.WriteLine("猴王是第"+(i+1)+"个"); 44 break; 45 } 46 } 47 Console.ReadLine(); 48 } 49 } 50 }