有N个灯放在一排,N个人进行操作,求灯泡最后的状态
2017-03-24 14:08
92 查看
题:
有N个灯放在一排,从1到N依次顺序编号。有N个人,也从1到N顺序编号。1号将灯全部关闭,2号将凡是2的倍数的灯全部打开;3号将3的倍数的灯全部作相反操作(该灯如为打开,则将它关闭;如关闭,则将灯打开)。以后的人,都和3号操作一样,将凡是自己序号倍数的灯作相反操作。
编程实现:
第N个人操作后,按顺序输出灯的状态(1表示等打开,0表示灯关闭)。
输入:
N(1<=N<=2000000),灯的个数
输出:
灯的状态,用01序列表示,中间无空格
输入示例:
2
输出示例:
01
代码 如下:
有N个灯放在一排,从1到N依次顺序编号。有N个人,也从1到N顺序编号。1号将灯全部关闭,2号将凡是2的倍数的灯全部打开;3号将3的倍数的灯全部作相反操作(该灯如为打开,则将它关闭;如关闭,则将灯打开)。以后的人,都和3号操作一样,将凡是自己序号倍数的灯作相反操作。
编程实现:
第N个人操作后,按顺序输出灯的状态(1表示等打开,0表示灯关闭)。
输入:
N(1<=N<=2000000),灯的个数
输出:
灯的状态,用01序列表示,中间无空格
输入示例:
2
输出示例:
01
代码 如下:
import java.util.Scanner; public class DengPao { public static void main(String[] args) { Scanner s = new Scanner(System.in); int n = s.nextInt(); int[] arr = new int[n+1]; int k=1; //1表示灯泡为开,初始状态所有灯泡都是开,第一个人操作之后全变为关 for(int i=1; i<=n; i++){ arr[i]=0; } //从第二个人开始循环 for(int i=2; i<=n; i++){ k = i; while(k % i == 0 && k < n){//k表示当前数,判断k是否是i的倍数,且k<n if(arr[k] == 0) arr[k] = 1; else arr[k] = 0; k++; } k = 1; } //输出灯泡状态 for(int i=1; i<=n; i++){ System.out.print(arr[i]); } s.close(); } }
相关文章推荐
- 对一批编号为1~100,全部开关朝上(开)的灯进行以下操作:凡是1的倍数反方向拨一次开关;2的倍数反方向又拨一次开关;3的倍数反方向又拨一次开关……问:最后为关熄状态的灯的编号。
- 【ERP】如何在主数据块处于新建或插入状态时禁止对明细数据块进行查询数据操作
- 利用位操作来进行状态操作
- Android应用中,退出activity时对一些资源以及状态的操作保存,可以在生命周期的哪个函数中进行?
- Promise对象(1)对象的状态不受外界影响。Promise对象代表一个异步操作,有三种状态:Pending(进行中)、Resolved(已完成,又称 Fulfilled)和Rejected(已失败
- 改进xutils下载管理器,使其,在随意地方进行进度更新,以及其它状态监听操作
- 解决模拟MOSS用户调用WebService打开个人站点进行操作
- radio的enable状态改变时对它进行操作
- QT 多种状态的背景图片, 放在同一张图上, border-image 进行分割,拉伸
- 对一个复原魔方进行操作,记录操作后魔方状态
- REST = HTTP动词(GET POST PUT DELETE)操作 + 服务器暴露资源URI,最后返回状态码(充分利用HTTP自身的特征,而不仅仅是把HTTP当作传输协议。Rest协议是面向资源的,SOAP是面向服务的),表现形式可以是JSON XML BIN,举例很清楚
- 写selector的xml文件时,需注意item的顺序,不带状态的item放在最后,否则selector无效
- 改进xutils下载管理器,使其,在任意地方进行进度更新,以及其他状态监听操作
- 黑马程序员--Java基础加强--15.利用反射操作泛型IV【通过反射Method解析泛型方法思路】【通过Method对四种Type子接口类型进行解剖】【使用递归对任意复合泛型类型进行彻底解剖】【个人
- 判断用户的登录状态,弹出alertView来进行登录操作
- ViewPager fragment 保存状态,内部使用listview 并进行了操作,保存操作后的状态
- 设计一个电视机类,成员变量包括电视机编号、生产厂家、品牌名称、大小、开关状态,并可以对其进行相应操作,如打开电视、提高/降低音量、更换频道等。
- 一个字符数组,里面的字符可能是a-z、A-Z、0-9.现在要求对数组进行排序,要求所有小写字符放在最前面,所有大写字符放在中间,所有数字放在最后,而且各部分内部分别有序(创新工场)
- 判断网络状态进行网络加载等操作
- 100个房间,100个服务员依次做相反操作,求最后状态