第十四届蓝桥杯集训——if——配套用法示例
创始人
2024-04-24 22:33:44

第十四届蓝桥杯集训——if——配套用法示例


目录

第十四届蓝桥杯集训——if——配套用法示例

方法1

方法2 

其它指数幂


 

输入一个数n,判断n是否是2的指数。

n的取值范围(0=>n<=2^{31})​​​​

题目看着很简单,其实在比较小的数上还是挺容易做的,但是依然要使用循环进行处理。

把这个数多次除以2,
如果可以整除,
是2的指数倍,
如果不可以,就不是,

但是循环我们还没有学习呢,不能用循环处理,而且利用这种方式根本无法判断要循环多少次,根据取值范围可以直接套31次循环。每次都循环这么多次,复杂度这就不低了。所以我们尽量用一次判断来解决它。

但是今天我们不使用循环,我们就使用一个【&】符号来判断这个n是否是2的指数。

推理:

有一个数2,这个数是否是2的指数。

2进行二进制处理,得出:【10】,如果【10】&【01】正好等于【00】,我们知道,如果是2的指数那么一定会是100000……的方式。故而我们有,如果二进制的这个数-1与n这个数进行&的位运算结果一定是00000,……,所有我们就可以用一个表达式来计算这个n是否是2的指数了。

方法1

接下来我们上代码:

举例数字1:2二进制:10,有: 10&(10-1)=10&01=00

举例数字2:8二进制:1000,有1000&(1000-1)=1000&0111=0000

后面的数字都是一个逻辑,计算完成后都是0000。

package com.item.action;import java.util.Scanner;public class Main {public static void main(String args[]) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();sc.close();/*** 举例数字1:2二进制:10,有: 10&(10-1)=10&01=00* 举例数字2:8二进制:1000,有1000&(1000-1)=1000&0111=0000* 后面的数字都是一个逻辑,计算完成后都是0000。*/if ((n & (n - 1)) == 0) {System.out.println(true);} else {System.out.println(false);}}
}

输入测试1024,输出结果true。

方法2 

我们利用2的31次幂来直接计算,这种方法的复杂度也是O(1)

package com.item.action;import java.util.Scanner;public class Main {public static void main(String args[]) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();sc.close();/*** 方法2:利用范围2的31次幂=2,147,483,648,* 注:由于int正值是从0开始计算故而无法正常显示2147483648* 我们需要使用l来表示一下这个数才能正常计算*/if(2147483648l%n==0) {System.out.println(true);}else {System.out.println(false);}}
}

输入测试1024,输出结果true。 

其实我们学会第二种方法后,无论是int范围还是long范围的所有数我们就都会判断了。

其它指数幂

例如:判断一个数是否是7的指数。

先计算7在int范围内的最大指数值,在进行对这个数n的取模计算即可。

package com.item.action;import java.util.Scanner;public class Main {public static void main(String args[]) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();sc.close();/*** 判断一个数是否是7的指数,n取值范围int值内* 7的11次幂就是int值内的最大数。1977326743*/if(1977326743%n==0) {System.out.println(true);}else {System.out.println(false);}}
}

输入测试49,输出结果true 

相关内容

热门资讯

tag是什么意思 tab是什么... 一、B端基础控件的认识控件一词,直译的话可以翻译成 “用来控制的元件”,是我们对 B 端系统进行信息...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
舌头对应五脏图 舌诊顺口溜 舌诊是非常重要的一门中医技术;更妙的是,舌诊适合普通人学习。因此从今天开始,会给大家简单介绍一些看舌...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...