思路(最好有代码)
1 逻辑:教授的生日在如下日期中:3月4日 3月5日 3月8日
6月4日 6月7日
9月1日 9月5日
12月1日 12月2日 12月8日
教授将生日的月份单独告诉了学生甲,把日期单独告诉了学生乙。甲乙对话如下:
甲说:乙肯定不知道
乙说:我先不知道,现在我知道了
甲说:那我也知道了。
问:教授的生日是哪天?请讲述推理过程。
2 SQLServer与算法:
有如下表,记录了分左右区的2叉树记录。其中:LorR字段,-1 表示顶级,1 表示左边,2表示右边;Parent_id子段,-1 表示顶级,其它表示上级父ID;User_id字段值是唯一的。
User_id Parent_id LorR
1 -1 -1
2 1 1
3 1 2
4 2 1
5 2 2
6 3 1
......
请书写一个存储过程,返回给定User_id 的左、右区中小区(网络点数少一点的区,一样多则左边优先)的最下一个新节点(如有左右2个空节点,左边优先)。
P_GetNewNode (@User_id int, @Node_id int output, @LorR int output)
AS
......
set @Node_id = ...
set @LorR = ...
GO
3 算法题: 给定一个字符串,里面用空格分开为6个或者更多的子单元,如:01 02 03 04 05 06 07 08... 写一函数,返回任6个进行组合的所有字符串。(C# 或者 )
public string[] ToSingle(string Number) //格式 01 02 03 04 05 06 07
{
}
输出的字符串数组示例:
01 02 03 04 05 06
01 02 03 04 05 07
01 02 03 05 06 07
01 02 04 05 06 07
01 03 04 05 06 07
02 03 04 05 06 07
......
4 算法题:计算 22/7的值,要求精确到指定的小数位,如精确到 100 位。