哈喽,大家好!今天的内容是数字标记!
引入🎈:
题目描述 教室里有n盏灯,编号从1到n,全是熄灭的,第1个学生进来的时候会把所有灯都打开,第2个学生会把编号为2的倍数的灯做相反处理,接着第3个同学进来,会把所有3的倍数的灯再做相反的处理,以此类推,当第m个学生进入教室操作完成以后,还有哪些灯是开着的。输出开着的灯的编号,一行一个。(1<=m<=n <=1000 ) 输入格式 一行,用空格隔开的两个正整数n和m 输出格式 顺次输出开着的灯的编号(每个编号占一行)。
呵呵,开始上课(不用说上课起立老师好)。
接着刚才
当同学3进入教室之后,3、6两盏灯的编号是3的倍数,做相反操作
最终我们可以得知编号为1、5、6、7的灯最终是亮着的
那如何让计算机替我们模拟一盏灯的状态呢?
在以前的解题过程中我们常常会定义一个变量flag,通过改变变量flag的值来标记某种情
况或者状态是否出现或发生过。我们这这种方法叫做变量标记法。
那么可以使用一个变量flag来标记某一个灯是否是开着的,0代表是关着,1代表是开着,
再通过判断灯的编号是否是学生编号的倍数来决定是否改变变量flag中的值那如何让计算机替我们模拟多盏灯的状态呢?
我们可以定义一个flag数组,每一个数组元素标记一个物品在某种情况或者状态是否出现
过或者发生过,我们称这种方法叫做数组标记法。
那么可以使用一个flag数组来标