3632 - 谁在撒谎?

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

猫说狗在撒谎。

狗说猪在撒谎。
猪说猫狗都在撒谎。
请编程找出到底谁在撒谎?

用1表示真话,0表示撒谎,按输出猫狗猪的状态

 

题目输入

题目输出

假如猫狗猪都撒谎了,应输出000

输入/输出样例

输入格式


                        

输出格式


                        

C++解答

#include <iostream>
using namespace std;
int a[3];
void f(int idx)
{
	if(idx==3)
	{
		if((a[0]!=a[1])&&(a[1]!=a[2])&&(a[2]==1&&(a[0]+a[1])==0||a[2]==0&&(a[0]+a[1])!=0)) 
		{
			for(int i=0;i<3;i++)
				cout<<a[i];
			cout<<endl;
		}
		return;
	}
	a[idx]=0;
	f(idx+1);
	a[idx]=1;
	f(idx+1);
}
int main()
{	
	f(0);
	return 0;
}

Java解答


public class Main {
	public static void main(String[] args) {
		for (int i = 0; i <= 1; i++) {
			for (int j = 0; j <= 1; j++) {
				for (int k = 0; k <= 1; k++) {
					if(((i==1&&j==0)||(i==0&&j==1))&&
							((j==1&&k==0)||(j==0&&k==1))&&
							((k==1&&i+j==0)||(k==0&&i+j>=1))){
					//	System.out.print("甲\t");
						System.out.print(i==1?1:0);
					//	System.out.print("乙\t");
						System.out.print(j==1?1:0);
					//	System.out.print("丙\t");
						System.out.print(k==1?1:0);
					}
				}
			}
		}
	}

}