4.8号新加坡和亚洲数学奥赛倒数第二题

 我来答
依蓝雨夕
2015-04-14
知道答主
回答量:11
采纳率:0%
帮助的人:9.4万
展开全部
我猜是8月17日。C只告诉A月份,告诉B日期。首先排除5月,6月。A确定B不知道,因为如果告诉B的是18日或者19日,B肯定知道C是什么时候生日。所以只能是7月或者8月。B说他知道了,说明有一个选项被排除了,只有5月或者6月的日期是被排除的,所以,应该是17日的6月被排除,那么只能是8月。所以生日是8月17日。
toofalen
2015-04-14
知道答主
回答量:9
采纳率:100%
帮助的人:1.1万
展开全部
7月16日。
1、Albert知道月份又肯定知道日期的Bernard不知道,就排除了5月和6月,因为里边有唯一的日子18、19日。
2、同样A说完后,B也就知道了月分为7、8两月。B说已经知道了,说明日子肯定不会是14日,因为7、8两个月都有14日,所以只能是15、16、17日。
3、B说完后,A马上就知道答案了,说明月份为7月,因为8月有两个日期,A是不能判断出来的。
4、由上推断为7月16日。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小昌nice
2015-04-14
知道答主
回答量:18
采纳率:0%
帮助的人:10.5万
展开全部
答案是7月16
a知道月份,能判断出b肯定不知道,这个月份后的日子都不唯一,也就是不可能是18.19,也就不是5月或6月
b开始不知道,排除了5.6月之后就确定了,所以不是14号
这时候还剩下7月16 8月15 8月17如果是8月,a不能在b那句话排除14号之后就马上确定,所以只剩下7月16了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ylzhu_2011
2015-04-16 · 超过13用户采纳过TA的回答
知道答主
回答量:46
采纳率:0%
帮助的人:27.7万
展开全部
#define MAX_DATE_SIZE 10
unsigned char DateArray[MAX_DATE_SIZE][2] = {
{ 5, 15 },
{ 5, 16 },
{ 5, 19 },
{ 6, 17 },
{ 6, 18 },
{ 7, 14 },
{ 7, 16 },
{ 8, 14 },
{ 8, 15 },
{ 8, 17 },
};
unsigned char SearchDay( unsigned char Day )
{
unsigned char R = 0;
unsigned char I, C;
for ( I = 0, C = MAX_DATE_SIZE; I < C; I++ )
{
if ( DateArray[I][1] == Day )
{
R++;
}
}
return R;
}
unsigned char TestPhase1( unsigned char Index )
{
unsigned char Month = DateArray[Index][0];
unsigned char Day = DateArray[Index][1];
unsigned char I, C;
for ( I = 0, C = MAX_DATE_SIZE; I < C; I++ )
{
if ( DateArray[I][0] == Month )
{
if ( SearchDay( DateArray[I][1] ) == 1 )
return FALSE;
}
}
return TRUE;
}
unsigned char TestPhase2( unsigned char Index )
{
unsigned char R = 0;
unsigned char Month = DateArray[Index][0];
unsigned char Day = DateArray[Index][1];
unsigned char I, C;
for ( I = 0, C = MAX_DATE_SIZE; I < C; I++ )
{
if ( DateArray[I][1] == Day && TestPhase1( I ) )
{
R++;
if ( R > 1 )
return FALSE;
}
}
return TRUE;
}
unsigned char TestPhase3( unsigned char Index )
{
unsigned char R = 0;
unsigned char Month = DateArray[Index][0];
unsigned char Day = DateArray[Index][1];
unsigned char I, C;
for ( I = 0, C = MAX_DATE_SIZE; I < C; I++ )
{
if ( DateArray[I][0] == Month && TestPhase2( I ) )
{
R++;
if ( R > 1 )
return FALSE;
}
}
return TRUE;
}
unsigned char GetResult( unsigned char Result[MAX_DATE_SIZE] )
{
unsigned char R = 0;
unsigned char I, C;
for ( I = 0, C = MAX_DATE_SIZE; I < C; I++ )
{
if ( TestPhase1( I ) && TestPhase2( I ) && TestPhase3( I ) )
{
Result[R++] = I;
}
}
return R;
}
void main( void )
{
unsigned char Result[MAX_DATE_SIZE];
unsigned char R = GetResult( Result );
unsigned char I, C;
printf( "Total resolution: %d\n", R );
for ( I = 0, C = R; I < C; I++ )
{
printf( "%d,%d\n", DateArray[Result[I]][0], DateArray[Result[I]][1] );
}
}

计算机输出结果:
Total resolution: 1
7,16
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友22c0556
2015-04-14 · TA获得超过848个赞
知道小有建树答主
回答量:380
采纳率:0%
帮助的人:118万
展开全部
很简单,是7/16首先排除5月和6月原因同楼上兄弟们,后面那个人以此确定生日,则排除7月和8月的14号,而七月仅剩16号,因此可以被确定。答案为7/16
真的好简单,对于我们中国孩子来说厉害些的小学生肯定也能做出来,我们学的可是全宇宙最难的数学啊。
求赞求最佳\(≧▽≦)/
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(23)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式