九连环的问题及撒谎问题求解

一.九连环

思路:

设置两个函数

f(i,1)函数代表,当前局面为[0,i]为空,装上单环i

f(i,0)函数代表,当前局面为[0,i-1]为空,i存在,卸下单环i,

digui(i,1),表示[0,i]为空,[0,i]全装上

digui(i,0),表示[0,i]全都存在,[0,i]全卸下来;

二.撒谎问题

某班中的一位同学做了好事不留名,表扬信来了之后,班主任问A,B,C,D,E,F 六位同学是谁做的好事,六位的回答如下:

   A说:不是我。
	 
   B说:是C。
	 
   C说:是D。
	 
   D说:C胡说。
	 
   E说:不是C就是E
	 
   F说:即不是D也不是E

 

如果N个人说的是真话,则根据这些信息,找出可能做了好事的人。

输入格式:

输入N,N个人可能说的是真话

输出格式:

有可能做好事的同学(A-F),如果有多位同学有可能做好事,则同学名称按字典序全部输出。同学名之间用" or "间隔。 如果无法找出,输出"Error"。

输入样例:

2
 

输出样例:

在这里给出相应的输出。例如:

A or D
思路:假设某个人做好事 , 带进去看是否是N个人说的是真话,如果是则这个人可能是做好事的;

 

posted @ 2021-10-31 14:59  思空欢  阅读(186)  评论(0)    收藏  举报