4.8号新加坡和亚洲数学奥赛倒数第二题
25个回答
展开全部
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日。
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日。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
答案是7月16
a知道月份,能判断出b肯定不知道,这个月份后的日子都不唯一,也就是不可能是18.19,也就不是5月或6月
b开始不知道,排除了5.6月之后就确定了,所以不是14号
这时候还剩下7月16 8月15 8月17如果是8月,a不能在b那句话排除14号之后就马上确定,所以只剩下7月16了
a知道月份,能判断出b肯定不知道,这个月份后的日子都不唯一,也就是不可能是18.19,也就不是5月或6月
b开始不知道,排除了5.6月之后就确定了,所以不是14号
这时候还剩下7月16 8月15 8月17如果是8月,a不能在b那句话排除14号之后就马上确定,所以只剩下7月16了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
很简单,是7/16首先排除5月和6月原因同楼上兄弟们,后面那个人以此确定生日,则排除7月和8月的14号,而七月仅剩16号,因此可以被确定。答案为7/16
真的好简单,对于我们中国孩子来说厉害些的小学生肯定也能做出来,我们学的可是全宇宙最难的数学啊。
求赞求最佳\(≧▽≦)/
真的好简单,对于我们中国孩子来说厉害些的小学生肯定也能做出来,我们学的可是全宇宙最难的数学啊。
求赞求最佳\(≧▽≦)/
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询