1,公鸡5元一只,母鸡3元一只,小鸡1元三只。用100元钱买100只鸡,各买了多少只?
2,一个数组中有一些数字如9,5,-3,3.2,7-9,-5,4,0,25,21,-4,-8,-21,-25,8等,数组中的数据可能比这个多。请问这个数组中有多少对正反数?请写出解题思路并写出相关代码。
3,有一个数字如1234,这个数字可能无限大。这个数字可以拆分成如下排列:1234,123,234,12,23,34,1,2,3,4。请写出这组数字的拆分规律并写出相关代码。
4,SQL题目,如下表所示:查询每个科目的分数都大于80分的学生的姓名。
姓名(name) | 科目(course) | 分数(score) |
---|---|---|
张三 | 语文 | 79 |
张三 | 数学 | 81 |
李四 | 语文 | 77 |
李四 | 数学 | 87 |
王五 | 语文 | 83 |
王五 | 数学 | 91 |
前三个题目都是考算法的,可以写自己的算法或思路,各位大仙,看看有何高招?
答案:
1.网友给的答案
假设100元钱只买母鸡与小鸡:
把1只母鸡与3只小鸡分为一组,4元钱买4只鸡,平均每只鸡1元。100只鸡共可分为25组,所以可买母鸡25只,小鸡75只。
然后进行调整,也就是把一部分母鸡与小鸡换成公鸡。
母要换成公鸡,只能拿出5只(或5的倍数)换成3只公鸡,总只数减少了2只;而1只母鸡换成9只小鸡,总只数增加8只。
可见,只要拿出4个5只母鸡换成12只公鸡(总只数减少8只),再拿出1只母鸡换成9只小鸡使总只数增加8只,就可达到总只数100不变。
所以,公鸡:12只;母鸡:25-5*4-1=4只;小鸡:9+75=84只。
2. ?
3. ?
4.同事给的答案
select t.name from student t group by t.name having min(t.score) > 80