洛谷 P5710 【深基3.例2】数的性质

题目描述
一些数字可能拥有以下的性质:

性质 1:是偶数;
性质 2:大于 4 且不大于 12。
小A 喜欢这两个性质同时成立的数字;Uim 喜欢这至少符合其中一种性质的数字;八尾勇喜欢刚好有符合其中一个性质的数字;正妹喜欢不符合这两个性质的数字。

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

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

输入输出样例
输入

12

输出

1 1 0 0

题解:
1.使用位运算判断奇偶,运行时间是要快于普通的数学符号判断(>,<等),位运算,判断n的奇偶性,如果n&1==0为偶数,n&1!=0为奇数或者三目运算符,System.out.println((n&1)==0 ? “偶数” : “奇数” );

import java.util.Scanner;
public class P5710深基32数的性质 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in=new Scanner(System.in);
		int n=in.nextInt();
		if ((n&1)==0&&(n>4&&n<=12)) System.out.print(1+" ");	//同时满足
		else System.out.print(0+" ");
		
		if ((n&1)==0||(n>4&&n<=12)||(((n&1)==0)&&(n>4&&n<=12))) System.out.print(1+" ");	//满足其一或者两个都满足
		else System.out.print(0+" ");
	
		if (((n&1)==0&&(n<=4||n>12))||((n&1)!=0&&(n>4&&n<=12))) System.out.print(1+" ");	//只满足其一
		else System.out.print(0+" ");
		
		if ((n&1)!=0&&(n<=4||n>12)) System.out.print(1);	//两个都不满足(一定要注意第二个判断要使用或运算,不然数据2会出错)
		else System.out.print(0);
	}
}
  1. 使用三目运算符,注意括号的范围,较为复杂但速度快,代码量小,注意加空格的括号,要将前面的三目运算符括在一起,不然会把特判的0和空格算作一个特判。
import java.util.Scanner;

public class P5710深基32数的性质 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in=new Scanner(System.in);
		int n=in.nextInt();
		System.out.print((((n&1)==0&&(n>4&&n<=12))?1:0)+" ");		//同时满足
		System.out.print((((n&1)==0||(n>4&&n<=12)||(((n&1)==0)&&(n>4&&n<=12)))?1:0)+" ");		//满足其一或者两个都满足
		System.out.print(((((n&1)==0&&(n<=4||n>12))||((n&1)!=0&&(n>4&&n<=12)))?1:0)+" ");		//只满足其一
		System.out.print(((n&1)!=0&&(n<=4||n>12))?1:0);		//两个都不满足(一定要注意第二个判断要使用或运算,不然数据2会出错)
	}
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值