夜明珠在哪里?
一个人的夜明珠丢了,于是他开始四处寻找。
有一天,他来到了山上,看到有三个小屋,分别为1号、2号、3号。
从这三个小屋里分别走出来一个女子
1号屋的女子说:“夜明珠不在此屋里。”
2号屋的女子说:“夜明珠在1号屋内。”
3号屋的女子说:“夜明珠不在此屋里。”
这三个女子,其中只有一个人说了真话,那么,谁说了真话?夜明珠到底在哪个屋里面?请分析。
以3个女子说的话为条件进行假设与求证
declare @a int=1,@ture_count int,@true_people int
/**
假设夜明珠在房屋 @a
**/
while(@a<=3)
begin
set @ture_count=0
/**
"夜明珠不在1号屋"
**/
if(@a<>1)
select @ture_count=@ture_count+1,@true_people=1
/**
"夜明珠在1号屋"
**/
if(@a=1)
select @ture_count=@ture_count+1,@true_people=2
/**
夜明珠不在3号屋"
**/
if(@a<>3)
select @ture_count=@ture_count+1,@true_people=3
/**
最终成立条件为"只有一个人说了真话"
**/
if(@ture_count=1)
select convert(varchar(max),@true_people)+N' 号屋说了真话, 夜明珠在 '+convert(varchar(max),@a)+N' 号屋。' as result
set @a=@a+1
end
结论:1 号屋说了真话,夜明珠在 3 号屋。