华为机试做题-3
来源:互联网 发布:苹果6网络不可用 编辑:程序博客网 时间:2024/06/05 17:31
问题:
有N个灯放一排,从1至N依次顺序编号。有N个人站一排,也从1至N一次编号。1号将灯全开,二号将2的倍数拉一次,关掉。。。。。最后还剩几盏灯亮着
public static void ladengwetnt(){ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); try { String inStr = br.readLine(); int n = Integer.parseInt(inStr); if(n < 1 || n> 65535){ return; } int[] arr = new int[n]; for(int i = 0;i < n;i++){ arr[i] = 0; } for(int k = 1;k<=n;k++){ for(int i = 1;i <= n;i++){ if(i*k <=n ){ arr[i*k - 1] = (arr[i*k -1]+1)%2; } else{ break; } } } int count = 0; for(int i = 0;i < n;i++){ if(arr[i] == 1){ count++; } } System.out.print(count);} catch (Exception e) {// TODO: handle exception//程序中只可能出现非法字符转数字异常 直接退出return;} }
for(int k = 1;k<=n;k++){ for(int i = 1;i <= n;i++){ arr[i%k] = (arr[i%k]+1)%2; }
这样的话内存循环要跑n次才结束,需要优化内层循环,因此需要进一步优化。优化结果在最上面。基本是瞬间出结果。不优化的话 OJ平台的审核结果是运行时超时。
0 0
- 华为机试做题-3
- 试做前端笔试题
- 试做游戏
- 2013华为机试-编程题3
- 2013华为机试-编程题3
- 华为机试样题
- 华为机试题【3】
- 华为笔试题3
- 第五届蓝桥杯C/C++本科B组(真题试做)(1~5)
- 第五届蓝桥杯C/C++本科B组(真题试做)(6~8)
- 第五届蓝桥杯C/C++本科B组(真题试做)(9~10)
- 使用Meta,试做网页,3秒后跳转到指定页面
- sicp 第一章习题试做
- 哈夫曼试做实验
- eclipse 插件试做
- NOIP 2015 试做
- NOIP 2014 试做
- NOIP 2013 试做
- android ListView 几个重要属性
- 创建分区表part_emp,再创建分区索引
- C++语言之iterator迭代器
- HDU-2005 第几天
- Java Object类
- 华为机试做题-3
- Javascript实现的单链表
- 创建学生表,(sno,name,score,class),求每个班级中低于最高成绩的那些人
- Spring配置Quartz任务调度框架教程
- Android 自定义View (二)
- 初涉USB,初学者USB入门总结(2) 设备固件程序
- VC中的fatal error C1010错误
- OpenCms 9.0.1 最新汉化版新鲜出炉
- highcharts 实时动态多条曲线