C#的c/s做出开灯关灯计算?有N盏灯,开始都是亮的,每个灯都有个开关,顺序是1,2,3.N.,然后将为2的倍数的灯拉一

C#的c/s做出开灯关灯计算?
有N盏灯,开始都是亮的,每个灯都有个开关,顺序是1,2,3.N.,然后将为2的倍数的灯拉一下,其次将编号为3的倍数的拉一下,再将编号为4的倍数的拉一下,最后将编号为5的倍数的灯拉一下,最后请 算出亮的灯的编号,
Google测试员417 1年前 已收到1个回答 举报

冷风boy 幼苗

共回答了15个问题采纳率:93.3% 举报

public class Lamp{public bool State = true;p...

1年前 追问

2

Google测试员417 举报

太深奥了 不会啊!!!不过看着挺爽的!!

举报 冷风boy

public class Lamp //灯
{
public bool State = true;//灯的状态
public int Num;//灯的编号
public void Toggle() //开灯关灯
{
State = !State;//如果开灯就变为关,关灯就变为开
}
}
int N = 10;//灯的数量
List lamps = new List();//所有的灯的集合
for (int i = 1; i <= N; i++) //初始化集合
{
lamps.Add(new Lamp() { Num = i });
}
lamps//所有的灯
.Where(p => p.Num % 2 == 0)//如果是2的倍数
.ToList()//转成list好使用foreach方法
.ForEach(//遍历所有满足条件的灯
p => p.Toggle()//开灯关灯
);
lamps.Where(p => p.Num % 3 == 0).ToList().ForEach(p => p.Toggle());
lamps.Where(p => p.Num % 4 == 0).ToList().ForEach(p => p.Toggle());
lamps.Where(p => p.Num % 5 == 0).ToList().ForEach(p => p.Toggle());
lamps.Where(p => p.State == true)//所有开着的灯
.ToList().ForEach(p =>//每个灯的编号打印出来
Console.WriteLine("t" + p.Num));
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.048 s. - webmaster@yulucn.com