面试题一,面试题_PHP教程
面试题一,面试题
最近在网上看见一道面试题,随手做了一下,也作为我开始写博客的第一篇开始。
因为我最近在学习PHP,所以我就用PHP来解决它,不过天下语言是一家,其他的语言也可参照思想。题目比较简单,如下:
大厅里有100盏灯,每盏灯都编了号码,分别为1-100。每盏灯由一个开关来控制。(开关按一下,灯亮,再按一下灯灭。开关的编号与被控制的灯相同。)开始时,灯是全灭的。现在按照以下规则按动开关。
第一次,将所有的灯点亮。
第二次,将所有2的倍数的开关按一下。
第三次,将所有3的倍数的开关按一下。
以此类推。第N次,将所有N的倍数的开关按一下。
问第100次按完以后,大厅里还有几盏灯是亮的。
方法如 下:
<span> 1</span> <?<span>php </span><span> 2</span> <span> 3</span> <span>//</span><span>totle:总共的灯盏数,times:按动开关的次数</span> <span> 4</span> <span>function</span> switchLight(<span>$totle</span>,<span>$times</span><span>){ </span><span> 5</span> <span>//</span><span>定义开关打开和关闭的状态属性</span> <span> 6</span> <span>$on</span>=1<span>; </span><span> 7</span> <span>$off</span>=-1<span>; </span><span> 8</span> <span>//</span><span>定义一个按动开关的动作</span> <span> 9</span> <span>$oc</span>=-1<span>; </span><span>10</span> <span>//</span><span>建立一个数组,动态存储灯盏数目,并初始化状态</span> <span>11</span> <span>$lights</span>=<span>array</span><span>(); </span><span>12</span> <span>for</span>(<span>$i</span>=1;<span>$i</span><=<span>$totle</span>;<span>$i</span>++<span>){ </span><span>13</span> <span>$lights</span>[<span>$i</span>]=<span>$off</span><span>; </span><span>14</span> <span> } </span><span>15</span> <span>//</span><span>判断没有按动开关的情况</span> <span>16</span> <span>if</span>(<span>$times</span>==0<span>){ </span><span>17</span> <span>return</span> 0<span>; </span><span>18</span> <span> } </span><span>19</span> <span>//</span><span>循环判断,并按动开关</span> <span>20</span> <span>for</span>(<span>$j</span>=1;<span>$j</span><=<span>$times</span>;<span>$j</span>++<span>){ </span><span>21</span> <span>for</span>(<span>$k</span>=1;<span>$k</span><=<span>$totle</span>;<span>$k</span>++<span>){ </span><span>22</span> <span>if</span>(!(<span>$k</span>%<span>$j</span><span>)) </span><span>23</span> <span>$lights</span>[<span>$k</span>]*=<span>$oc</span><span>; </span><span>24</span> <span> } </span><span>25</span> <span> } </span><span>26</span> <span>//</span><span>遍历出所有为on的灯,并存入新数组</span> <span>27</span> <span>$newLights</span>=<span>array</span><span>(); </span><span>28</span> <span>for</span>(<span>$r</span>=1;<span>$r</span><=<span>$totle</span>;<span>$r</span>++<span>){ </span><span>29</span> <span>if</span>(<span>$lights</span>[<span>$r</span>]==<span>$on</span><span>){ </span><span>30</span> <span>$newLights</span>[]=<span>$r</span><span>; </span><span>31</span> <span> } </span><span>32</span> <span> } </span><span>33</span> <span>return</span> <span>$newLights</span><span>; </span><span>34</span> <span>35</span> <span> } </span><span>36</span> <span>37</span> <span>$newLights</span>=switchLight(100,100<span>); </span><span>38</span> <span>echo</span> "结果有".<span>count</span>(<span>$newLights</span>)."盏灯亮,具体如下:"<span>; </span><span>39</span> <span>foreach</span>(<span>$newLights</span> <span>as</span> <span>$light</span><span>){ </span><span>40</span> <span>echo</span> <span>$light</span><span>; </span><span>41</span> <span>echo</span> "\n"<span>; </span><span>42</span> <span> } </span><span>43</span> ?>
有更好的方法,会后续更新。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

技嘉的主板怎么设置键盘开机首先,要支持键盘开机,一定是PS2键盘!!设置步骤如下:第一步:开机按Del或者F2进入bios,到bios的Advanced(高级)模式普通主板默认进入主板的EZ(简易)模式,需要按F7切换到高级模式,ROG系列主板默认进入bios的高级模式(我们用简体中文来示范)第二步:选择到——【高级】——【高级电源管理(APM)】第三步:找到选项【由PS2键盘唤醒】第四步:这个选项默认是Disabled(关闭)的,下拉之后可以看到三种不同的设置选择,分别是按【空格键】开机、按组

1.处理器在选择电脑配置时,处理器是至关重要的组件之一。对于玩CS这样的游戏来说,处理器的性能直接影响游戏的流畅度和反应速度。推荐选择IntelCorei5或i7系列的处理器,因为它们具有强大的多核处理能力和高频率,可以轻松应对CS的高要求。2.显卡显卡是游戏性能的重要因素之一。对于射击游戏如CS而言,显卡的性能直接影响游戏画面的清晰度和流畅度。建议选择NVIDIAGeForceGTX系列或AMDRadeonRX系列的显卡,它们具备出色的图形处理能力和高帧率输出,能够提供更好的游戏体验3.内存电

从零开始,手把手教你安装Flask和快速搭建个人博客作为一个喜欢写作的人来说,拥有一个个人博客是非常重要的。而Flask作为一个轻量级的PythonWeb框架,可以帮助我们快速搭建一个简洁而功能完善的个人博客。在本文中,我将从零开始,手把手教你如何安装Flask并快速搭建个人博客。第一步:安装Python和pip在开始之前,我们需要先安装Python和pi

主板上SPDIFOUT连接线序最近我遇到了一个问题,就是关于电线的接线顺序。我上网查了一下,有些资料说1、2、4对应的是out、+5V、接地;而另一些资料则说1、2、4对应的是out、接地、+5V。最好的办法是查看你的主板说明书,如果找不到说明书,你可以使用万用表进行测量。首先找到接地,然后就可以确定其他的接线顺序了。主板vdg怎么接线连接主板的VDG接线时,您需要将VGA连接线的一端插入显示器的VGA接口,另一端插入电脑的显卡VGA接口。请注意,不要将其插入主板的VGA接口。完成连接后,您可以

博客,又译为网络日志、部落格或部落阁等,是一种通常由个人管理、不定期张贴新的文章的网站。那么怎么搭建博客?PHP博客系统有哪些?哪个博客系统好用?下面PHP中文网就来给大家总结分享十大开源php博客系统,一起来看看吧!

随着互联网的发展,博客成为越来越多人分享自己生活、知识和想法的平台。如果你也想创建一个自己的博客,那么本文将介绍如何使用PHP和SQLite来创建一个简单的博客。确定需求在开始创建博客之前,我们需要确定自己想要实现的功能。例如:创建博客文章编辑博客文章删除博客文章显示博客文章列表显示博客文章详情用户认证和权限控制安装PHP和SQLite我们需要安装PHP和S

广联达软件是一家专注于建筑信息化领域的软件公司,其产品被广泛应用于建筑设计、施工、运营等各个环节。由于广联达软件功能复杂、数据量大,对电脑的配置要求较高。本文将从多个方面详细阐述广联达软件的电脑配置推荐,以帮助读者选择适合的电脑配置处理器广联达软件在进行建筑设计、模拟等操作时,需要进行大量的数据计算和处理,因此对处理器的要求较高。推荐选择多核心、高主频的处理器,如英特尔i7系列或AMDRyzen系列。这些处理器具有较强的计算能力和多线程处理能力,能够更好地满足广联达软件的需求。内存内存是影响计算

如何解决jQueryAJAX报错403的问题?在开发网页应用程序时,经常会使用jQuery来发送异步请求。然而,有时候在使用jQueryAJAX时可能会遇到错误代码403,表示服务器禁止访问。这种情况通常是由服务器端的安全设置所导致的,但可以通过一些方法来解决这个问题。本文将介绍如何解决jQueryAJAX报错403的问题,并提供具体的代码示例。一、使
