一百个灯泡排成一排,第一轮将所有灯泡打开;第二轮每隔一个灯泡关掉一个。 即排在偶数的灯泡被关掉,第三轮每隔两个灯泡,将开着的灯泡关掉,关掉的灯泡打开。 依次类推,第n轮结束的时候,还有几盏灯泡亮着。
来源:互联网 发布:用友软件销售招聘 编辑:程序博客网 时间:2024/04/28 17:17
今天笔试遇到一个题目,搜了下貌似是百度的面试题,回来原样写下来一遍编译就通过了,结果也没问题,现场却被打了个大叉,当时直接笑笑叫他有空再仔细看看,然后走了...(我也是够拽的吧)
新人报道,共同学习,多多指导......
/*
一百个灯泡排成一排,第一轮将所有灯泡打开;第二轮每隔一个灯泡关掉一个。
即排在偶数的灯泡被关掉,第三轮每隔两个灯泡,将开着的灯泡关掉,关掉的灯泡打开。依次类推,第n轮结束的时候,还有几盏灯泡亮着。
*/
#include "stdafx.h"
int getLight_on(int *light)
{
int pos = 0, count = 0;
for (int i = 0; i < 100; i++)//第一轮所有的等全部打开
{
light[i] = 1; //get all light on
}
for (int j = 1; j < 100; j++) //从第二轮到第100轮..即.当前正在进行第(j+1)轮
{
pos = 0; //每一轮/我要操作的位置复位
pos += j;// 1 2 3...... //第一个pos值1,2,3,4,5......
while (pos < 100)
{
if (0 == light[pos])
{
light[pos] = 1;
}
else
{
light[pos] = 0;
}
pos += (1 + j); //比如第2轮:j = 1,我要操作的pos为1,3,5,7......j即操作的是第2,4,6,8...个灯;
}
}
for (int k = 0; k < 100; k++)
{
if (1 == light[k])
{
printf("tota light on num is:%d\n",k+1);
count++;
}
}
return count;
}
int main()
{
int light[100] = {0};
printf("%d",getLight_on(light));
getchar();
return 0;
}
- 一百个灯泡排成一排,第一轮将所有灯泡打开;第二轮每隔一个灯泡关掉一个。 即排在偶数的灯泡被关掉,第三轮每隔两个灯泡,将开着的灯泡关掉,关掉的灯泡打开。 依次类推,第n轮结束的时候,还有几盏灯泡亮着。
- 一百个灯泡排成一排,第一轮将所有灯泡打开;
- 灯泡
- 一百个灯泡排成一排
- 灯泡的故事
- 灯泡的研究
- 一个笔试题目:100个灯泡,每一次状态转换,求第n次的状态。
- 100盏灯泡的亮灭
- 六、灯泡开关的判断
- UHP 灯泡
- UHE灯泡
- 灯泡开关
- 按灯泡
- 灯泡开关
- 蓝牙灯泡
- 灯泡开关
- 意大利灯泡
- 100盏灯泡的开关问题
- 【总结】嵌入式linux常用命令
- Linux shell脚本编程技巧
- JMeter正则参数设置说明(后续补充)
- 浅析task_struct结构体
- DOS命令下使用sqlite3 命令中文乱码的解决办法(用adb shell 查看出现中文乱码)
- 一百个灯泡排成一排,第一轮将所有灯泡打开;第二轮每隔一个灯泡关掉一个。 即排在偶数的灯泡被关掉,第三轮每隔两个灯泡,将开着的灯泡关掉,关掉的灯泡打开。 依次类推,第n轮结束的时候,还有几盏灯泡亮着。
- maven如何导入jar包到本地仓库
- 枚举
- JAVA类成员初始化顺序详解
- UVA 455
- 特征工程(1)--特征工程是什么?
- RecyclerView分割线-ItemDecoration
- js禁止方法频繁执行
- HTML实现仿百度图片触发后跳出相关文字机制