1、一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去…,如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王。要求编程模拟此过程,输入m、n, 输出最后那个大王的编号。
![8ddda1b3c7ac991de63b090517daec8d.png](https://img-blog.csdnimg.cn/img_convert/8ddda1b3c7ac991de63b090517daec8d.png)
2、有一母牛,到4岁可生育,每年一头,所生均是一样的母牛,到15岁绝育,不再能生,20岁死亡,问n年后有多少头牛。
![535efeb96348ccf71bb285bce591a463.png](https://img-blog.csdnimg.cn/img_convert/535efeb96348ccf71bb285bce591a463.png)
3、杨辉三角
![2df0e44c66fdd7d7992dce9fb48cef22.png](https://img-blog.csdnimg.cn/img_convert/2df0e44c66fdd7d7992dce9fb48cef22.png)
4.冒泡排序
![6d09801fef10e38917b5ef6e7dcaf035.png](https://img-blog.csdnimg.cn/img_convert/6d09801fef10e38917b5ef6e7dcaf035.png)
5.快速排序
![f7ff99d2d13e9d45965a963abfc7f4cf.png](https://img-blog.csdnimg.cn/img_convert/f7ff99d2d13e9d45965a963abfc7f4cf.png)
6.二分查找算法(折半查找算法)
![7df5d24f81cb07d9abb5c2b1691e2c5b.png](https://img-blog.csdnimg.cn/img_convert/7df5d24f81cb07d9abb5c2b1691e2c5b.png)
7.PHP奇异算法
![59c31df2e320156a297d6c0c61f7da9f.png](https://img-blog.csdnimg.cn/img_convert/59c31df2e320156a297d6c0c61f7da9f.png)
PHP7以下的版本返回的是 6,PHP7版本返回5 ,还真的算奇异,个人底层算法差,认为是PHP7以下版本的BUG
8.字符集合:输入一个字符串,求出该字符串包含的字符集合,并按顺序排序(英文)
![da2e39622726423cba0198c9b11b82eb.png](https://img-blog.csdnimg.cn/img_convert/da2e39622726423cba0198c9b11b82eb.png)
9.遍历一个文件下的所有文件和子文件夹下的文件
![a77c79ce191c742ba028cb2b62a64a7f.png](https://img-blog.csdnimg.cn/img_convert/a77c79ce191c742ba028cb2b62a64a7f.png)
10.从一个标准的Url提取出文件的扩展名
![e56fe134c6bb613d30be0c9d8f34ef3a.png](https://img-blog.csdnimg.cn/img_convert/e56fe134c6bb613d30be0c9d8f34ef3a.png)
11.有个人想上一个n级的台阶,每次只能迈1级或者迈2级台阶,问:这个人有多少种方法可以把台阶走完?例如:总共3级台阶,可以先迈1级再迈2级,或者先迈2级再迈1级,或者迈3次1级总共3中方式
![84533b14d6e945683ff931c85d4f73e8.png](https://img-blog.csdnimg.cn/img_convert/84533b14d6e945683ff931c85d4f73e8.png)
12.请写一段PHP代码,确保多个进程同时写入同一个文件成功
![4768451642af73729a3b44012fa8f145.png](https://img-blog.csdnimg.cn/img_convert/4768451642af73729a3b44012fa8f145.png)
13.无限级分类
![f94a2b22e9fc329625901c312e62314f.png](https://img-blog.csdnimg.cn/img_convert/f94a2b22e9fc329625901c312e62314f.png)
14.获取上个月第一天 和 最后一天
![95b95482f4d92994e7d4f569964fc9f2.png](https://img-blog.csdnimg.cn/img_convert/95b95482f4d92994e7d4f569964fc9f2.png)
15.随机输入一个数字能查询到对应的数据区间
![48b22f42965adfc0a1a7f05bdce6efae.png](https://img-blog.csdnimg.cn/img_convert/48b22f42965adfc0a1a7f05bdce6efae.png)
16,现在有一个字符串,你要对这个字符串进行 n 次操作,每次操作给出两个数字:(p, l) 表示当前字符串中从下标为 p 的字符开始的长度为 l 的一个子串。你要将这个子串左右翻转后插在这个子串原来位置的正后方,求最后得到的字符串是什么。字符串的下标是从 0 开始的,你可以从样例中得到更多信息。
每组测试用例仅包含一组数据,每组数据第一行为原字符串,长度不超过 10 ,仅包含大小写字符与数字。接下来会有一个数字 n 表示有 n 个操作,再接下来有 n 行,每行两个整数,表示每次操作的(p , l)。
保证输入的操作一定合法,最后得到的字符串长度不超过 1000。
![dff3c747cb4229e366d9234a4bfbd384.png](https://img-blog.csdnimg.cn/img_convert/dff3c747cb4229e366d9234a4bfbd384.png)
17,你作为一名出道的歌手终于要出自己的第一份专辑了,你计划收录 n 首歌而且每首歌的长度都是 s 秒,每首歌必须完整地收录于一张 CD 当中。每张 CD 的容量长度都是 L 秒,而且你至少得保证同一张 CD 内相邻两首歌中间至少要隔 1 秒。为了辟邪,你决定任意一张 CD 内的歌数不能被 13 这个数字整除,那么请问你出这张专辑至少需要多少张 CD ?
每组测试用例仅包含一组数据,每组数据第一行为三个正整数 n, s, L。 保证 n ≤ 100 , s ≤ L ≤ 10000
![e3a2ff3f0b1d32c4c22b25e573862331.png](https://img-blog.csdnimg.cn/img_convert/e3a2ff3f0b1d32c4c22b25e573862331.png)
18 用PHP实现一个双向队列
![7bc14c5bcb962f413f496a5a7c84c75b.png](https://img-blog.csdnimg.cn/img_convert/7bc14c5bcb962f413f496a5a7c84c75b.png)
19 请使用冒泡排序法对以下一组数据进行排序10 2 36 14 10 25 23 85 99 45。
![9359dad9582f538aac4b6b5e7b06bd89.png](https://img-blog.csdnimg.cn/img_convert/9359dad9582f538aac4b6b5e7b06bd89.png)
20 写出一种排序算法(要写出代码),并说出优化它的方法。
![23d3a35752ffda6be1d4155922fb8b01.png](https://img-blog.csdnimg.cn/img_convert/23d3a35752ffda6be1d4155922fb8b01.png)
21 洗牌算法
![22a801f4b7d037ab6108b8488e2c4c69.png](https://img-blog.csdnimg.cn/img_convert/22a801f4b7d037ab6108b8488e2c4c69.png)
【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
2 就是第三个数是前两个数字的和,既是经典的菲波那切数列
![533ec2dee8dedee9d5e4879bfee1ea9c.png](https://img-blog.csdnimg.cn/img_convert/533ec2dee8dedee9d5e4879bfee1ea9c.png)
【程序2】 题目:判断101-200之间有多少个素数,并输出所有素数。
1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
则表明此数不是素数,反之是素数
![35f6091ae06aa06e3e0a12f2b6699610.png](https://img-blog.csdnimg.cn/img_convert/35f6091ae06aa06e3e0a12f2b6699610.png)
【程序3】 题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。
1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
![e553e6b7b3824713687a0abe4b1e10e6.png](https://img-blog.csdnimg.cn/img_convert/e553e6b7b3824713687a0abe4b1e10e6.png)
【程序4】 题目:利用条件运算符的嵌套来完成此题:学习成绩> =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
1.程序分析:(a> b)?a:b这是条件运算符的基本例子。
![3191308b690f1c7a60b879e3d2af8087.png](https://img-blog.csdnimg.cn/img_convert/3191308b690f1c7a60b879e3d2af8087.png)
【程序5】 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
1.程序分析:关键是循环获得计算出每一项的值。
2. 可以使用php的str_repeat函数
![1e73a14e1f9b198d5a020322135b9405.png](https://img-blog.csdnimg.cn/img_convert/1e73a14e1f9b198d5a020322135b9405.png)
【程序6】题目:一个整数,它加上100后是一个完全平方数,加上168又是一个完全平方数,请问该数是多少?
1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。请看具体分析:
刚开始不知道怎么判断一个数字是否为完全平方数,但是根据php的基本函数sqrt和pow可以间接进行判断
![fc79151c23a66d71219ae63d0d48a186.png](https://img-blog.csdnimg.cn/img_convert/fc79151c23a66d71219ae63d0d48a186.png)
若开方后进行取整再平方等于原数字,那么这个数字则为一个完全平方数,根据这个方法进行判断
【程序7】 题目:输入某年某月某日,判断这一天是这一年的第几天?
1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。 刚开始看这题以为有什么简单的方法,但是我没有想到,没有办法,只能用这种方法了
![8c641ed045ef01b144ef11797c764727.png](https://img-blog.csdnimg.cn/img_convert/8c641ed045ef01b144ef11797c764727.png)
【程序8】 题目:输入三个整数x,y,z,请把这三个数由小到大输出。
1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x> y则将x与y的值进行交换,然后再用x与z进行比较,如果x> z则将x与z的值进行交换,这样能使x最小。
这里不把排序当做考察点,排序的话可以使用冒泡,快速,插入等排序算法,这里使用了三种交换变量的方式,我感觉这才是重要的
![a10fad5bc2a62e564cac0d6084f087a1.png](https://img-blog.csdnimg.cn/img_convert/a10fad5bc2a62e564cac0d6084f087a1.png)
【程序9】 题目:输出9*9口诀。
1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
![df187577578907f52ca7c8703c48bab7.png](https://img-blog.csdnimg.cn/img_convert/df187577578907f52ca7c8703c48bab7.png)
【程序10】 题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
1.程序分析:请抓住分子与分母的变化规律。
![0f0f2ed3a2c1ca78426e6feaa8294f25.png](https://img-blog.csdnimg.cn/img_convert/0f0f2ed3a2c1ca78426e6feaa8294f25.png)
【程序11】 题目:求1+2!+3!+...+20!的和
1.程序分析:此程序只是把累加变成了累乘
![86524d8270f4d2a702ee25aa4aee7d5c.png](https://img-blog.csdnimg.cn/img_convert/86524d8270f4d2a702ee25aa4aee7d5c.png)
【程序12】 题目:利用递归方法求5!。
1.程序分析:递归公式:fn=fn_1*4!
![e3095924ef54175b62180b5a51a6c1d0.png](https://img-blog.csdnimg.cn/img_convert/e3095924ef54175b62180b5a51a6c1d0.png)
【程序13】 题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
1.程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。
![769fb87253d1f4701065667187ebca6f.png](https://img-blog.csdnimg.cn/img_convert/769fb87253d1f4701065667187ebca6f.png)
【程序14】 题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
![1115444307b48217d18de147314d2eff.png](https://img-blog.csdnimg.cn/img_convert/1115444307b48217d18de147314d2eff.png)
【程序15】 题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
![56dcc96ca55423dd92351fe84e722de6.png](https://img-blog.csdnimg.cn/img_convert/56dcc96ca55423dd92351fe84e722de6.png)
![a4e8262a28bf96612cf47f68c6cbea85.png](https://img-blog.csdnimg.cn/img_convert/a4e8262a28bf96612cf47f68c6cbea85.png)