小明和小强都是张老师的学生,张老师的生日是M月N日,2人都知道张老师的生日
是下列10组中的一天,张老师把M值告诉了小明,把N值告诉了小强,张老师问他们知道他的生日是那一天吗?
3月4日 3月5日 3月8日
6月4日 6月7日
9月1日 9月5日
12月1日 12月2日 12月8日
小明说:如果我不知道的话,小强肯定也不知道
小强说:本来我也不知道,但是现在我知道了
小明说:哦,那我也知道了
请根据以上对话推断出张老师的生日是哪一天
参考答案:
生日是9月1日
解题思路:
由小明第一句话可知,此月可能为3月或9月。因为6月有个7日,12月有个2日,如果M为6或12的话,小强有可能知道,而小强肯定不知道。
由小强的话可知,此日可能为1日、4日或8日。因为如果N为5的话,小强无法判断是3月5日还是9月5日,而不会说现在我知道了。
由小明第二句话可知,此月必为9月。因为如果是3月,小明无法判断是3月4日还是3月8日,而他说那我也知道了。
综上所述,生日是9月1日。
参考答案:
生日是9月1日
代码大概是:
class begin
{
static void Main()
{
//初始化生日集合
生日集合 srjh=new 生日集合();
srjh.Add(new 生日类(3,4));
srjh.Add(new 生日类(3,5));
srjh.Add(new 生日类(3,8));
srjh.Add(new 生日类(6,4));
srjh.Add(new 生日类(6,7));
srjh.Add(new 生日类(9,1));
srjh.Add(new 生日类(9,5));
srjh.Add(new 生日类(12,1));
srjh.Add(new 生日类(12,2));
srjh.Add(new 生日类(12,8));
//开始工作流
工作流.BEG(srjh);
System.Console.Read();
}
}
//工作流
class 工作流
{
/**//* 开始结点
* ↓
* 结点A:如果我不知道的话 →结点X:小明知道(该节点分支略)
* ↓
* 结点B:小强肯定也不知道
* ↓
* 结点C: 小强说:现在我知道了
* ↓
* 结点D:小明说:哦,那我也知道了
* ↓
* 结束结点
*
*/
public static void BEG(生日集合 obj)
{
if(obj !=null)
{
A(obj);//下一结点
}
}
//结点A:如果我不知道的话
private static void A(生日集合 obj)
{
生日集合 jh=AI.小明分析(obj);
if(jh.Count==0)
{
B(obj); //下一结点
}
else
{
//小明可以光凭月知道的集合
//该节点分支略
}
}
//结点B:小强肯定也不知道
private static void B(生日集合 obj)
{
//得到小强光凭日期就能知道的集合
生日集合 小强知道的集合=AI.小强分析(obj);
//小明之所以知道小强肯定不知道,
//是因为小明知道的月份不是小强光凭日期就能知道的
生日集合 排除的集合=new 生日集合();
foreach(生日类 temp in 小强知道的集合)
{
foreach(生日类 tp in obj)
{
if(temp.月==tp.月)
{
排除的集合.Add(tp);
}
}
}
集合操作.排除(obj,排除的集合);
C(obj);//下一结点
}
//结点C: 小强说:现在我知道了
private static void C(生日集合 obj)
{
生日集合 小强知道的集合=AI.小强分析(obj);
D(小强知道的集合); //下一结点
}
//结点D:小明说:哦,那我也知道了
private static void D(生日集合 obj)
{
生日集合 小明知道的集合=AI.小明分析(obj);
END(小明知道的集合);//下一结点
}
//完成结点:
private static void END(生日集合 obj)
{
//完成,输出到屏幕
foreach(生日类 temp in obj)
{
System.Console.WriteLine(temp.月.ToString() +"-" +temp.日.ToString());
}
}
}
//功能扶助类
class 集合操作
{
public static void 排除(生日集合 s,生日集合 v)
{
foreach(生日类 temp in v)
{
s.Remove(temp);
}
}
}
class 生日类
{
public int 日=0;
public int 月=0;
public 生日类(int y,int r)
{
日=r;
月=y;
}
}
class 生日集合:System.Collections.ArrayList
{
public void 添加(生日类 v)
{
this.Add(v);
}
public void 移除(生日类 v)
{
this.Remove(v);
}
}
class AI
{
public static 生日集合 小明分析(生日集合 v)
{
//AI,如果有维一的月份,则小明能确定
//月份为1到12
生日集合 jh=new 生日集合();
int n=0;//记数器,如果n=1表示有
for(int i=1;i <=12;i++)
{
生日类 x=null;
foreach(生日类 temp in v)
{
if(temp.月==i)
{
n=n+1;
x=temp;
}
}
if(n==1)
{
jh.Add(x);
}
n=0;
}
return jh;
}
public static 生日集合 小强分析(生日集合 v)
{
//AI,如果有维一的日,则小强能确定
//日为1到31
生日集合 jh=new 生日集合();
int n=0;//记数器,如果n=1表示有
for(int i=1;i <=31;i++)
{
生日类 x=null;
foreach(生日类 temp in v)
{
if(temp.日==i)
{
n=n+1;
x=temp;
}
}
if(n==1)
{
jh.Add(x);
}
n=0;
}
return jh;
}
}
相关推荐
java面试趣味题目(含答案)
面试趣味题目(含答案)
最近找工作,搜刮了一些Java面试题,涨涨知识
Java 面试随着时间的改变而改变。在过去的日子里,当你知道 String 和 StringBuilder 的区别(String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象。因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的...
java面试常考的题和一些有趣的java谜题
里面有两部分,第一部分是java面试常考的题,第二部分是一些有趣的java谜题!
Java那些奇奇怪怪的面试题(持续补充中)
收集一些我容易出错是的面试题,持续更新中。 Integer对象==比较(小于128的数值) public static void main(String[] args) { Integer numA = 127 ; Integer numB = 127 ; Integer numC = Integer.valueOf(127) ; Integer numD = new Integer(127) ; //带有new肯定是一个全新的对象
100Java 有趣的逻辑题 新颖 有趣 最全
100Java 有趣的逻辑题 新颖 有趣 最全
常见的java就业面试题
常见的java就业面试题常见的java就业面试题常见的java就业面试题常见的java就业面试题常见的java就业面试题常见的java就业面试题常见的java就业面试题常见的java就业面试题
【Java】面试官灵魂拷问:if语句执行完else语句真的不会再执行吗
最近跳槽找工作的朋友确实不少,遇到的面试题也是千奇百怪,这不,一名读者面试时,被面试官问到了一个直击灵魂的问题:if 语句执行完else语句真的不会再执行吗?这个奇葩的问题把这名读者问倒了!问题分析最近一名读者留言说,自己出去面试被面试官的一道奇葩问题问倒了,这个问题就是:if语句执行完else语句真的不会再执行吗?这名读者确实不知道该如何回答这个问题。回去后,自己查阅了很多资料也没弄明白这个问题!想必很多读者朋友遇到这种奇葩面试题时,多多少少都会觉得闹心吧!不过,闹心归闹心,问题还是要解决的。
昇腾Ascend310b部署deepseek-r1-7b的学习记录
9.鲲鹏服务器+昇腾卡(Atlas 300I pro)搭建DeepSeek-R1-Distill-Qwen-7B(自己存档详细版)5.如何使用昇腾Ascend 300I Pro 310P芯片 单卡运行DeepSeek-R1-Distilled-Qwen-7B。6.鲲鹏服务器+昇腾卡(Atlas 300I pro)搭建DeepSeek-R1-Distill-Qwen-7B。7.鲲鹏+昇腾部署DeepSeek-R1-Distill-Qwen-32B+Open-webui。
史上最全的Java工程师面试题汇总,全会的话月薪至少3W+
Java基础知识 java中==和equals和hashCode的区别 int与integer的区别 抽象类的意义 接口和抽象类的区别 能否创建一个包含可变对象的不可变对象? 谈谈对java多态的理解 String、StringBuffer、StringBuilder区别 泛型中extends和super的区别 进程和线程的区别 final,finally,finalize的区...
【Bug—eNSP】华为eNsp路由器设备启动一直是0解决方案!
软件,添加AR设备时启动异常,最开始错误代码是40,最后通过重新安装,又出现了新的问题,启动AR设备一直是0,而且界面卡住。打开控制面板→网络和Internet→网络和共享中心→更改适配器设置,然后再按以下步骤一次操作。重新打开eNsp,然后选择注册设备,注册成功后重新启动一下,这个时候AR设备就可以正常启动啦。打开eNsp→菜单→工具→选项→服务器设置,写入刚刚写的IP地址就可以了。打开VirtualBox,将左侧的文件全部删除(点击删除所有文件)
汽车工程师必看:从CAN到Ethernet,6种车载通信协议全解析(附应用场景对比)
本文全面解析了从CAN到Ethernet的6种车载通信协议,包括CAN、LIN、MOST、FlexRay等,并对比了它们的应用场景和技术特点。文章详细介绍了各协议的演进历程、技术优势及在现代汽车中的混合网络架构设计,为汽车工程师提供了实用的协议选型指南和未来通信技术发展趋势。
在“北上广深杭”做Java开发如何月薪达到2w,需要技术水平达到什么程度?
前言: 最近群里有朋友一直在聊就是月薪多少多少,说在北京上海等一线城市做java怎么样可以达到2w块钱的水平,今天就来唠唠这么个话题 首先两万的月薪在BAT实在太普遍了,一般是高级工程师和资深工程师的职位。 在阿里是p6左右,在百度是t5左右,腾讯是t2-3左右,京东是t3-1,美团是p6左右,其他的我不了解。 整理了最新2020整理收集的一线互联网公司面试真题(都整理成文档),有很多干货,包含netty,spring,线程,spring cloud等详细讲解,也有详细的学习规划图,面试题整理等,我
从MIPS汇编到C语言:手把手教你用Mars模拟器理解指令集(附实战代码)
本文详细介绍了如何使用Mars模拟器从MIPS汇编过渡到C语言编程,通过实战代码解析ADD、LW、BEQ等指令集与C语言结构的对应关系。内容涵盖环境搭建、算术运算、内存访问、条件分支及函数调用等核心概念,帮助读者深入理解MIPS指令分类和计算机底层运行机制。
Java 程序员月薪3
学习视频:《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!**
Rocky Linux 9 离线环境Docker部署实战:从依赖打包到服务启动
本文提供了一份详尽的Rocky Linux 9离线环境Docker部署实战指南。针对无法访问外网的生产或内网服务器,文章详细讲解了如何在联网跳板机上下载Docker二进制包及所有系统依赖RPM包,并完成打包。随后,手把手指导在离线服务器上进行依赖安装、二进制文件部署、systemd服务配置、SELinux与防火墙调优,最终实现Docker服务的成功启动与验证。
[运动规划算法]基于飞行走廊的轨迹优化
文章目录简介一、介绍二、原理飞行走廊生成三、项目演示参考 简介 Btraj是一个在线的四旋翼无人机的运动规划框架,主要用于未知环境中的自主导航。基于机载状态估计和环境感知,采用基于快速行进(FM *)的路径搜索方法,从基于构建的欧氏距离场(ESDF)中寻找路径,以实现更好的时间分配。通过对环境进行膨胀生成四旋翼无人机的飞行飞行走廊。使用伯恩斯坦多项式将轨迹表示为分段Bezier曲线,并将整个轨迹生成问题转换成凸问题。通过使用Bezier曲线,可以确保轨迹的安全性和高阶动力学可行性,可以将轨迹完全限制在安全
全会月薪至少 3W 的 面试题汇总,
同学们该冲刺冲刺了,不管你是打算去面中小厂还是说去面试大厂,都是需要去做一个面试突击的准备的,比如:JVM、线程、数据库、SPring 全家桶的源码、分布式微服务、一些底层的原理,高并发调优经验,甚至包括一些软技能:怎么和面试聊薪资、怎么去介绍自己的上一份项目,怎么去修改简历,本篇都会教给大家的! 下面是字节跳动 2022 年 Java 架构师岗面试题(试行版)的 PDF 版本,同时后边还会和大家分享 1000 套简历模板(包括了从刚出社会的小白到 120W 年薪的大佬)! 文末即可添加小助理获取即可啦
YoloV8改进策略:基于双层路由注意力的视觉Transformer提升YoloV8的检测能力
本文使用2023年最新提出的BiFormer,实现对YoloV8的改进。目前,BiFormer还有在显存占用,还有性能存在问题。我们先试试效果,期待作者在Pytoch上早日实现优化。论文链接:https://arxiv.org/abs/2303.08810代码链接:https://github.com/rayleizhu/BiFormer作为视觉transformer的核心构建模块,注意力是捕捉长程依赖关系的强大工具。
Java程序员月薪2W除了北上广深杭,如何达到?需要什么掌握能力
还有人提到这个水平不止2w,其实工资是跟面试表现有关的,也跟其他综合水平有关,比如你是985,top10,或者研究生学历,也或者懂点node,Android等等的,或者表达能力强,击中面试官痛点肯定加分是吧。spring里面有哪些你熟悉的设计模式,你怎么理解和应用的。比如对集合类,并发包,IO/NIO,JVM,内存模型,泛型,异常,反射,等有深入了解,最好是看过源码了解底层的设计。从底层说起,你起码得深入了解mysql,redis,mongodb,nginx,tomcat,rpc,jms等方面的知识。
数控系统(CNC)系列:Hurco VMX42SR_(3).控制系统硬件组成部分
控制箱是CNC系统的核心部分,负责处理所有的控制指令和数据。它通常包含主控板、电源模块、接口板等关键组件。伺服驱动器是CNC系统中的关键组件,负责将主控板发出的控制信号转换为电机所需的驱动电流。它通过闭环控制确保电机的精确运动。电机是CNC系统中的执行机构,负责实现主控板发出的运动指令。常见的电机类型包括步进电机和伺服电机。传感器是CNC系统中的重要组件,用于检测和反馈机床的运行状态。常见的传感器类型包括位置传感器、速度传感器、温度传感器等。电源供应系统为CNC系统的所有组件提供电力。主电源。
汉书HE8,好用的汇编代码编写工具
汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大
去面试3W月薪的Java岗位,被虐哭了,原来是我这些技术点还有欠缺
“面的是一个大厂,面试官问了很多问题,一大半的问题我都是一知半解,回答上来问题也是特没底。 大概回顾了这场面试:上来先是问了 Java 基础知识,jvm、字符串、集合、线程等等,这部分我还算准备的充分。第二部分开始复杂了,主要是线程、设计模式、缓存方面的问题,像是分布式、集群环境中,缓存如何刷新,怎么保持同步?我之前工作上经历的少,加上自己技术储备浅薄,到这部分时我就感觉自己快凉了。面试到最后,问了设计方案相关的,当时已经懵了,我只记得一个问题:假设服务器经常宕机,你从哪些方面去排查问题?我。。。。“
TMS_WebGMaps_1.9.8.0_Full_Source
TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder
java3W月薪_3W|跟着小小学会这些 Java 工程师面试题,月薪至少 3 W
Hi! 我是小小,今天的主要内容是讲解一份Java工程师必备面试题,学会了这些面试题,面试至少三万起步。File常用方法有哪些Files.exists() 检测文件路径是否存在Files.createFile() 用于创建文件Files.createDirectory() 用于创建文件夹Files.delete() 用于删除一个文件或者目录Files.copy() 用于复制文件Files.move...
visio安装包
Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。
文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况
主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。
Java开发月薪2W的知乎讨论记录截取
1. 推荐看 作者:匿名用户 链接:https://www.zhihu.com/question/39890405/answer/83676977 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。—————————————————————我是分割线————————————————————有人回答说这只能是大企业或者互联网企业的工程师才能拿到。也许是的
3W | 跟着小小学会这些 Java 工程师面试题,月薪至少 3 W
Hi! 我是小小,今天的主要内容是讲解一份Java工程师必备面试题,学会了这些面试题,面试至少三万起步。File常用方法有哪些Files.exists() 检测文件路径是否存在Files...
Java程序员凭什么月薪平均2W+
针对最近很多人都在面试,我这边也整理了相当多的面试专题资料,也有其他大厂的面经。希望可以帮助到大家。最新整理面试题上述的面试题答案都整理成文档笔记。也还整理了一些面试资料&最新2021收集的一些大厂的面试真题最新整理电子书最新整理大厂面试文档以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!386632)]以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
534



被折叠的 条评论
为什么被折叠?



