模拟开关

开关灯模拟代码

拜拜、爱过 提交于 2020-02-23 14:56:29
题目如下: 假设有 NN 盏灯(NN 为不大于 50005000 的正整数),从 11 到 NN 按顺序依次编号,初始时全部处于开启状态;有 MM 个人(MM 为不大于 NN 的正整数)也从 11 到 MM 依次编号。 第一个人( 11 号)将灯全部关闭,第二个人( 22 号)将编号为 22 的倍数的灯打开,第三个人( 33 号)将编号为 33 的倍数的灯做相反处理(即,将打开的灯关闭,将关闭的灯打开)。依照编号递增顺序,以后的人都和 33 号一样,将凡是自己编号倍数的灯做相反处理。 请问:当第 MM 个人操作之后,哪几盏灯是关闭的,按从小到大输出其编号,其间用逗号间隔。 输入格式 输入正整数 NN 和 MM,以单个空格隔开,M\le NM≤N。 输出格式 顺次输出关闭的灯的编号,其间用逗号间隔。 样例输入 10 10 样例输出 1 , 4 , 9 这道题没有过多的算法,直接模拟即可。 下面是我的代码供参考 如果有更快的代码请教一下我qwq # include <iostream> using namespace std ; bool vis [ 5005 ] ; int main ( ) { int n , m ; cin >> n >> m ; bool b = false ; for ( int i = 1 ; i <= n ; i ++ ) { vis [ i ] =

c# 异步编程

旧城冷巷雨未停 提交于 2019-12-01 15:24:33
原文链接: https://blog.csdn.net/zuheyawen/article/details/99863588 前言 C#异步编程有几种实现方式,异步方法就是其中的一种。异步方法是 C#5.0 才有的新特性,主要采用 async、await 关键字声明为异步方法,完成对方法的异步调用。C#5.0 对应的 VS 版本是 VS2012,对应的 .NET Framework 版本是 v4.5,所以需要在此基础上才支持。(否则可能报:找不到“async”修饰符所需的所有类型。目标框架版本是否不正确,或者缺少对程序集的引用?) 什么是异步方法 1. 异步方法,是指在执行当前方法的同时,可以异步的去调用其他方法(异步方法),并且不会阻塞当前方法的线程。 2. 使用了 async 修饰符的方法称为异步方法,通常配合 await 运算符和 Task 异步任务一起使用。 1) 如果方法使用了 async 修饰符,则方法中需要包含一个以上 await 运算符,否则将以同步执行。 2) 反之,如果方法中包含一个以上 await 运算符,则必须声明为一个异步方法,即使用 async 修饰符。 3. Task 分为两种: 1) Task,表示可以执行一个异步操作,声明如下: public class Task : IAsyncResult, IDisposable { } 2) Task