其他分享
首页 > 其他分享> > (笔记未整理完全)洛谷 P5710 【深基3.例2】数的性质

(笔记未整理完全)洛谷 P5710 【深基3.例2】数的性质

作者:互联网

题目描述

一些数字可能拥有以下的性质:

小A 喜欢这两个性质同时成立的数字;Uim 喜欢这至少符合其中一种性质的数字;八尾勇喜欢刚好有符合其中一个性质的数字;正妹喜欢不符合这两个性质的数字。

输入格式

输入一个数字 x(0≤x≤1000)

输出格式

输出这 4 个人是否喜欢这个数字,如果喜欢则输出1,否则输出0,用空格分隔。

输入输出样例

输入:

12

输出:

1 1 0 0

第一版代码:(未AC,有一个数据出错) 

#include <iostream>
using namespace std;
int main()
{
	int n,a=0,b=0,c=0,d=0;
	scanf("%d",&n);
	if((n%2==0)&&((n>4)&&(n<=12)))		a=1;
	if((n%2==0)||((n>4)&&(n<=12)))		b=1;
	if((n%2!=0)||((n<4)||(n>12)))		c=1;    //问题出在这里!
	if((n%2!=0)&&((n<4)||(n>12)))		d=1;	
	printf("%d %d %d %d",a,b,c,d);
	return 0;
}

 错误测试点数据:

输入:1

输出:0 0 0 1


第二版代码:(已AC)

#include <iostream>
using namespace std;
int main()
{
	int n,a=0,b=0,c=0,d=0;
	scanf("%d",&n);
	if((n%2==0)&&((n>4)&&(n<=12)))		a=1;
	if((n%2==0)||((n>4)&&(n<=12)))		b=1;
	if((n%2==0)^((n>4)&&(n<=12)))		c=1;   //用异或表示仅符合其中的一项 
	if((n%2!=0)&&((n<=4)||(n>12)))		d=1;	
	printf("%d %d %d %d",a,b,c,d);
	return 0;
}

总结:

逻辑运算符的用法:

标签:n12,输出,洛谷,数字,int,深基,&&,未整理,性质
来源: https://blog.csdn.net/gzkeylucky/article/details/122006387