当前位置: 技术问答>java相关
120分求解一个到底谁说谎的问题!盼望高手指点!
来源: 互联网 发布时间:2017-03-09
本文导语: 问题:张三说李四说谎,李四说王五说谎,王五说张三、李四都说谎,问三人到底谁说谎? http://expert.csdn.net/Expert/topic/1225/1225370.xml?temp=.685528 本人解法如下: #include /** *p,q,r 分别代表张,李,王是否说真话. ...
问题:张三说李四说谎,李四说王五说谎,王五说张三、李四都说谎,问三人到底谁说谎?
http://expert.csdn.net/Expert/topic/1225/1225370.xml?temp=.685528
本人解法如下:
#include
/**
*p,q,r 分别代表张,李,王是否说真话.
* 他们说的话可以转化为: p --> ┑q; q --> ┑r;
* r --> ┑p∧r --> ┑q ;并且,只有一个断言为假!( 离散数学 )
* 分别用P、Q、R 代表这三个断言
*/
int p,q,r,P,Q,R,S;
int COUNT;/* 说真话的人的个数 */
/* 打印结果 */
void printResult()
{
if( !p )
printf("n-------------------ZhangSan laying!-------------------n");
if( !q )
printf("n------------------- LiSi Laying! -------------------n");
if( !r )
printf("n------------------ WangWu Laying! -------------------n");
printf("n %5d %5d %5d n",p,q,r);
}
/* 统计断言为真的个数*/
void getCount()
{
COUNT = 0;
if( P )
COUNT ++ ;
if( Q )
COUNT ++ ;
if( R && S )
COUNT ++ ;
}
/* 检查当前答案是否为解 */
int isResult()
{
getCount();
if( COUNT == 3 && p + q + r == 2 )
return 1;
else
return 0;
}
/* 判断断言的真假 */
void setPQR()
{
if( p == 0 )
P = 1;
else if( q == 1){
P = 0;
}
else {
P = 1;
}
if( q == 0 )
Q = 1;
else if( r == 1) {
Q = 0;
}
else {
Q = 1;
}
if( r == 0 )
R = 1;
else if( p == 1) {
R = 0;
}
else {
R = 1;
}
if( r == 0 )
S = 1;
else if( q == 1) {
S = 0;
}
else {
S = 1;
}
}
/**
* leemingjun 2002-12-3 Tc 2.0下调试通过
*/
void main()
{
int FOUND = 0;
for( p = 0 ; p
http://expert.csdn.net/Expert/topic/1225/1225370.xml?temp=.685528
本人解法如下:
#include
/**
*p,q,r 分别代表张,李,王是否说真话.
* 他们说的话可以转化为: p --> ┑q; q --> ┑r;
* r --> ┑p∧r --> ┑q ;并且,只有一个断言为假!( 离散数学 )
* 分别用P、Q、R 代表这三个断言
*/
int p,q,r,P,Q,R,S;
int COUNT;/* 说真话的人的个数 */
/* 打印结果 */
void printResult()
{
if( !p )
printf("n-------------------ZhangSan laying!-------------------n");
if( !q )
printf("n------------------- LiSi Laying! -------------------n");
if( !r )
printf("n------------------ WangWu Laying! -------------------n");
printf("n %5d %5d %5d n",p,q,r);
}
/* 统计断言为真的个数*/
void getCount()
{
COUNT = 0;
if( P )
COUNT ++ ;
if( Q )
COUNT ++ ;
if( R && S )
COUNT ++ ;
}
/* 检查当前答案是否为解 */
int isResult()
{
getCount();
if( COUNT == 3 && p + q + r == 2 )
return 1;
else
return 0;
}
/* 判断断言的真假 */
void setPQR()
{
if( p == 0 )
P = 1;
else if( q == 1){
P = 0;
}
else {
P = 1;
}
if( q == 0 )
Q = 1;
else if( r == 1) {
Q = 0;
}
else {
Q = 1;
}
if( r == 0 )
R = 1;
else if( p == 1) {
R = 0;
}
else {
R = 1;
}
if( r == 0 )
S = 1;
else if( q == 1) {
S = 0;
}
else {
S = 1;
}
}
/**
* leemingjun 2002-12-3 Tc 2.0下调试通过
*/
void main()
{
int FOUND = 0;
for( p = 0 ; p
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
站内导航:
特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!