面试.NET工程师,有一道这样面试题:

代码题:对一批编号为1-100全部开关朝上(开)的灯进行以下操作:
开关编号凡是1的倍数反方向拨一次开关;若该编号也是2的倍数反方向又拨一次开关;若该编号又是3的倍数反方向又拨一次开关……以此类推一直计算到100为止。

计算出开关朝上(开)的灯的数量并给出代码

博主当时未加多思索(哈哈,拿出来做个对比,小伙伴们看看就好),便给出了以下答案:

    class Program{static void Main(string[] args){int sum = 0;for (int i = 1; i <= 100; i++){bool flag = true;//这代表开关朝上for (int j = 1; j <= 100; j++){if (i%j==0)flag = false;elseflag = true;}if (flag)//当第一个灯的100执行完成之后,flag为true代表开sum++;}Console.WriteLine(sum);Console.ReadKey();}}

然鹅,是错的,理想很丰满,现实很骨感,面试官还给我耐心讲解了以下,并提醒我要用数组来存储100盏灯,于是,我回来研究了,以下代码才是正确的:

    class Program{static void Main(string[] args){//假设0是朝上(开),1是朝下(关)int[] light = new int[100];for (int i = 0; i < 100; i++){for (int n = 1; n < 101; n++){if ((i + 1) % n == 0)SetSwitch(light, i);}}int sum = 0;for (int i = 0; i < light.Length; i++){if (light[i] == 0)sum++;}Console.WriteLine(sum);//计算出sum=90Console.ReadKey();}public static void SetSwitch(int[] temp, int i){if (temp[i] == 0)temp[i] = 1;else if (temp[i] == 1)temp[i] = 0;}}

其实,n可以直接从2开始,因为毕竟所有数都可以除以1,这里写出来方便阅读,实际设计中还是应该尽量避免冗余哦

C#.NET面试题:一批编号为1-100全部开关朝上(开)的灯进行以下操作: 开关编号凡是1的倍数反方向拨一次开关;若该编号也是2的倍数反方向又拨一次开关;若该编号又是3的倍数反方向又拨一次开关……相关推荐

  1. 对一批编号为1~100,全部开关朝上(开)的灯进行以下操作:凡是1的倍数反方向拨一次开关;2的倍数反方向又拨一次开关;3的倍数反方向又拨一次开关……问:最后为关熄状态的灯的编号。

    题目: 对一批编号为1-100,全部开关朝上(开)的灯进行以下操作:凡是1的倍数反方向拨一次开关:2的倍数反方向又拨一次开关:3的倍数反方向又拨一次开关--问:最后为关熄状态的灯的编号. Java源代 ...

  2. [益智]:对于编号为1~100的灯,进行操作,最后为关熄状态的灯的编号?

    题目描述 对一批编号为1-100,全部开关朝上(开)的灯进行以下操作:凡是1的倍数反方向拨一次开关:2的倍数反方向又拨一次开关:3的倍数反方向又拨一次开关--问:最后为关熄状态的灯的编号. 正确思路: ...

  3. 有n个人围成一圈,按顺序从1到n编号。从第一个人开始报数,报数3的人退出圈子,下一个人从1开始重新报数,报数3的人退出圈子。如此循环,直到留下最后一个人。问留下来的人的编号。

    [问题描述]有n个人围成一圈,按顺序从1到n编号.从第一个人开始报数,报数3的人退出圈子,下一个人从1开始重新报数,报数3的人退出圈子.如此循环,直到留下最后一个人.问留下来的人的编号. [输入形式] ...

  4. 批量文件编号001到100怎么操作?

    批量文件编号001到100怎么操作?在电脑使用的过程中,我们经常需要给文件进行编号,例如一项工作设计了100个文件,给这100个文件进行编号有利于文件的安全保存,也有利于文件的查找,这是一项非常有意义 ...

  5. 【c语言】查找200以内既是3的倍数又是5的倍数的数

    <程序设计基础-c语言>杨莉 刘鸿翔 科学出版社 ISBN 978-7-03-032903-5 p18 习题1 3.算法设计:查找200以内即是3的倍数又是5的倍数 #include< ...

  6. java求出1~100之间,既是3又是7的倍数的自然数出现的次数?

    1)打印1~100之间 6的倍数的个数 2)求出1-100之间,既是3又是7的倍数的自然数出现的次数? class Exer1{public static void main(String[] arg ...

  7. 2022年最新Android面试题整理,全网都在看,史上最全面试攻略

    Android面试现在什么东西是必须考察的?专业素养还是面试技巧?四大组件还是Framework层源码?哪有什么必考的,可以说所有技术栈都不是必考,但又是必考.话虽看似矛盾,但却反映了当前国内互联网环 ...

  8. 计算机应用基础的填空试题及答案,计算机应用基础试题及答案(填空题100道)2#严选材料...

    <计算机应用基础试题及答案(填空题100道)2#严选材料>由会员分享,可在线阅读,更多相关<计算机应用基础试题及答案(填空题100道)2#严选材料(14页珍藏版)>请在人人文库 ...

  9. 有52张牌,使它们全部正面朝上,第一轮是从第2张开始,凡是2的倍数位置上的牌翻成正面朝下;第二轮从第3张牌开始,凡是3的倍数位置上的牌,正面朝上的翻成正面朝下。。。

    (12)有52张牌,使它们全部正面朝上,第一轮是从第2张开始,凡是2的倍数位置上的牌翻成正面朝下;第二轮从第3张牌开始,凡是3的倍数位置上的牌,正面朝上的翻成正面朝下,正面朝下的翻成正面朝上;第三轮从 ...

最新文章

  1. java list反序列化_java序列化与反序列化操作实例分析
  2. 性能不同的服务器可以组成云,多个服务器组成云
  3. .net session 有效时间_Python中requests模拟登录的三种方式(携带cookie/session进行请求网站)...
  4. zabbix监控防火墙和交换机
  5. 支持异构图、集成GraphGym,超好用的图神经网络库PyG更新2.0版本
  6. 什么电脑的牌子好用_你觉得电脑好用还是手机好用?为什么?
  7. UI设计师应该知道的,APP设计师的辅助小工具网站集合导航
  8. mysql访问被拒绝1045_mysqlimport:错误:1045,访问被拒绝
  9. 接连倒闭失联的背后 传统健身房生意为什么突然就不行了?
  10. android6自定义锁屏,Android自定义控件系列之:锁屏页
  11. 变量foo 和 bar的由来
  12. 点击a标签调起whatsapp
  13. Android:微信授权登录与微信分享全解析
  14. 503 service unavailable 错误怎么解决?503 service unavailable 错误的解决方法。
  15. 樊登读书会终身成长读后感_《终身成长》读后感三篇
  16. R语言入门1---R语言介绍以及学前注意事项
  17. 短信验证php_php实现登录短信验证
  18. #SORA#flask-RESTful的一些坑
  19. cvc-complex-type.2.4.d: 发现了以元素 'd:skin' 开头的无效内容。此处不应含有子元素。
  20. 必应地图添加开源OpenStreetMaps

热门文章

  1. #define 和typedef的区别
  2. 华为鸿蒙系统失败,世界首富很无奈,第三大手机系统失败,华为鸿蒙会成功吗...
  3. JetBrains提示“No suitable licenses associated with account ”
  4. 使用PPT画图:浅尝辄止
  5. 创造一个计算机语言,世界上第一个文言文编程语言诞生,创造它的是一个大学生...
  6. 嵌入式学习为什么要选择4412开发板
  7. pytorch CNN手写字体识别
  8. 解决springboot无法访问此网站,springboot启动后无法访问网站
  9. nginx作为图片服务器
  10. PAT乙级 1003 我要通过! (20分)