有一排开关,第一个人把所有的开关打开,第二个人按2的倍数的开关,第三个人按3的倍数的开关,以此类推,现在又n个开关,k个人,写函数求最后等两者的开关,输入参数n和k
static void Main(string[] args)
{
int n = int.Parse(Console.ReadLine());
int k = int.Parse(Console.ReadLine());
Function(100,100);
}
static void Function(int n, int k)
{
int i, j = 0;
bool[] a = new bool[1000]; //初始false:关灯,true:开灯
for (i = 1; i <= k; i++) //k个人
for (j = 1; j <= n; j++) //n个灯
if (j % i == 0)
a[j] = !a[j]; //取反,false变true,原来开变关,关变开
for (i = 1; i <= n; i++) //最后输出a[i]的值就可以了
if (a[i]) //灯亮着
Console.WriteLine(i);
}