一个烂大街的题,前两天刚好看到别人解这个题,用c++实现的,网上还有很多的java版的等等,我就改成了ruby版的,ruby版的程序算是比较短的了吧,还是有些函数式的影子,而不是纯粹的ruby化面向对象。
小明和小强都是张老师的学生,张老师的生日是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日
小明说:如果我不知道的话,小强肯定也不知道
小强说:本来我也不知道,但是现在我知道了
小明说:哦,那我也知道了
请根据以上对话推断出张老师的生日是哪一天
ruby版程序,就是按照条件排除,把数组内值非设定的都为nil,剩下的就是张老师的生日了。
month = [3,3,3,6,6,9,9,12,12,12] # 月份
date = [4,5,8,4,7,1,5,1,2,8] #日期
#单一日期对应月份的值全部设置为nil
date.each_index do |i|
month.each_index { |j| date[j] = nil if month[j] ==month[i] } if date.count(date[i]) == 1
end
#剩余的日期,去掉重复的
date.each do |i|
date.each_index { |j| date[j] = nil if i == date[j] } if date.count(i) ==2
end
#把日期为nil的对应月份也设置为nil
date.each_index do |i|
month[i] = nil if date[i] == nil
end
#去掉重复的月份
month.each do |i|
month.each_index { |j| month[j] = nil if i == month[j] } if month.count(i) ==2
end
#月份nil对应的日期为nil
month.each_index do |i|
date[i] = nil if month[i] == nil
end
#剩下的日期就是张老师的生日了。
print "Teacher's birthday is #{month.compact[0]}-#{date.compact[0]}"
分享到:
相关推荐
生日问题是指,如果一个房间里有23个或23个以上的人,那么至少有两个人的生日相同的概率要大于50%。这就意味着在一个典型的标准小学班级(30人)中,存在两人生日相同的可能性更高。对于60或者更多的人,这种概率要...
在Python编程语言中,我们可以利用其丰富的库和功能来创建有趣的项目,比如制作一个生日祝福程序。本项目的核心是利用Python的图形库,如Turtle,来绘制生日蛋糕,并通过用户输入来定制祝福对象和祝福语,使得这个...
用python画生日蛋糕,并可自行设置生日祝福对象及祝福语。
五张卡片猜生日简化版.exe
最后,这个"网页版生日祝福信"可以打包成一个压缩文件,如`happy-birthday-master.zip`,包含HTML文件、图片、音频和其他相关资源,方便发送给收件人。对方只需解压后在浏览器中打开HTML文件,就能看到这份精心制作...
html好看的生日祝福,生日表白(源码).zip 代码完整,下载可用。小白也可实战。 html好看的生日祝福,生日表白(源码).zip 代码完整,下载可用。小白也可实战。html好看的生日祝福,生日表白(源码).zip 代码完整,...
在本项目中,"生日祝福_C++_生日祝福_"是一个使用C++编程语言实现的程序,目的是为了给朋友们提供一种独特且有趣的生日祝福方式。它不仅包含了一般的祝福语,还通过动态变化的方式增强了视觉效果,如屏幕颜色的变化...
一个房间有23个人,会有两个人生日相同吗?答案是有50%的概率。这就是所谓的生日问题birthday problem)或生日悖论(birthday paradox)。本文回答的问题是,当人数众多时,生日相同的概率达到50%,有多少人。
"生日快乐网页模版html5"是一个专为庆祝生日而设计的HTML5页面模版,适合程序员们用来向他们的朋友或特别的人送上独特的生日祝福。这个模版利用了现代Web技术,提供了丰富的交互性和视觉效果,使其成为一种既实用又...
下面将详细介绍这些技术及其在创建生日祝福页面中的应用。 1. HTML(HyperText Markup Language):HTML是构建网页的基础,用于定义网页的结构和内容。在生日祝福页面中,HTML可以用来创建标题、段落、图像、链接等...
63张壁纸的丰富数量确保了家长有多种选择,可以根据孩子的年龄、性别甚至是他们的兴趣爱好来挑选合适的壁纸。 电视投屏技术的核心在于屏幕镜像功能,如Apple的AirPlay、Android的Miracast或Chromecast。这些技术...
为了制作生日祝福页面,我们可以使用`<h1>`标签创建大标题,写上“生日快乐!”: ```html 生日快乐! ``` 为了增加一些视觉效果,可以使用`<img>`标签插入一张生日蛋糕或其他相关的图片。记得为图片提供一个`...
标题“生日快乐.rar”暗示了这是一个与庆祝生日相关的项目,很可能是一个互动的网页设计,用于向某人表达生日祝福。这个项目使用了HTML、CSS和JavaScript三种核心技术来创建,这是一套常见的前端开发语言组合,用于...
生日快乐c
"生日快乐代码.zip"这个压缩包文件看起来包含了一个与编程相关的项目,可能是一个简单的程序或脚本,用于在某人的生日时表达祝福。虽然没有具体的标签来指明使用的编程语言或技术,我们可以根据常见的编程实践来推测...
"生日快乐小程序"是一个以庆祝生日为主题的编程项目,它包含了源代码,可能是一个小型的应用程序或者游戏,旨在作为特别的礼物赠送给朋友或恋人。这个程序的独特之处在于它使用了透视化处理技术来处理图片,增加了...
这类项目通常包含交互性元素,比如动态展示祝福语、播放音乐或者显示动画效果,为庆祝生日增添趣味。 描述中提到的几个关键点是: 1. **双击index.html**:在HTML项目中,`index.html`是默认的主页文件,双击它...
标题中的“生日祝福生日烟花.zip”表明这是一个与生日庆祝相关的压缩文件,可能包含用于制作生日祝福的素材或程序。描述中的“烟花特效 倒计时 生日祝福 手机PC都响应”揭示了文件的核心内容,即包含了烟花动画效果...
【生日祝福APP】是一款基于开源技术的移动应用,旨在为用户提供便捷的生日祝福服务。这款APP的源代码可以从GitHub上获取,鼓励用户进行下载、学习和分享,体现了开源社区的开放精神。通过分析其源代码,我们可以深入...
在这个“粉色甜心”版本中,设计师选择粉色作为主色调,营造出浪漫、甜蜜的氛围,特别适合用来向爱人或女性朋友表达生日祝福。 HTML,全称HyperText Markup Language,是网页开发的基础语言,用于定义网页内容的...