(本题本来可能也就普及难度但是硬生生给评成了一道NOI难度的紫题,有点无语。。。)
这道题目是一道愚人节题目,本来只有下面的电路图,结果翻译完之后难度就直接没了。
------------
言归正传, 说说这个题目吧。
####
抛开题目不谈,我们来复习下这个题目的原理。(与,或, 异或的概念)
或:
或(|):若二者均为0则返回0,否则返回1。
与(&):若二者均为1则返回1,否则返回0。
异或(^):若二者相等则返回0,不等则返回1。
------------
(~~其实可以直接复制解说的那段公式~~)
Code
#include<iostream> #include<cstdio> using namespace std; int main() { int a, b, c, d; scanf("%d%d%d%d", &a, &b, &c, &d); int s1, s2, s3, s4, s5, s6, s7;// s1, s2, s3, s4, s5, s6, s7分别为每一步的结果。 if(a == b) s1 = 0; else s1 = 1; if(c == 0 && d == 0) s2 = 0; else s2 = 1; if(s1 == 1 && s2 == 1) s3 = 1; else s3 = 0; if(b == 1 && c == 1) s4 = 1; else s4 = 0; if(a == d) s5 = 0; else s5 = 1; if(s4 == 0 && s5 == 0) s6 = 0; else s6 = 1; if(s3 == s6) s7 = 0; else s7 = 1; /*直接s7 = ((a ^ b) & (c | d) ) ^ ((b & c)| (a ^ d))应该也行吧*/ printf("%d\n", s7);//输出最后的结果 return 0; }
最后,没有markdown真不习惯