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

news2024/10/1 12:26:55

第十四届蓝桥杯集训——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 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/95800.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CARIS11.4基本使用流程及其bug解决

今天博主介绍一下CARIS11.4的基本流程以及它的界面bug。 一、CARIS11.4的基本流程 如果以前用过CARIS9&#xff0c;不用看帮助说明&#xff0c;你摸索一段时间也能掌握CARIS11.4的使用流程。相比CARIS9&#xff0c;CARIS11.4的主要功能基本不变&#xff0c;增加了生成变分辨率…

毕业设计 - java web 进销存管理系统的设计与实现【源码+论文】

文章目录前言一、项目设计1. 模块设计系统需要具备以下功能2. 实现效果二、部分源码项目源码前言 今天学长向大家分享一个 java web 项目: 进销存管理系统的设计与实现 一、项目设计 1. 模块设计 系统需要具备以下功能 ⑴一般企业人员的计算机知识掌握的不多&#xff0c;因…

Android studio profiler中的Shallow size和retained sizes是什么意思

这个文章说得非常好&#xff1a;https://www.yourkit.com/docs/java/help/sizes.jsp#:~:textYourKit%20Java%20Profiler%20is%20capable%20of%20measuring%20shallow,the%20number%20and%20types%20of%20%20its%20fields. Shallow size&#xff1a;用于存储一个对象的内存大小…

【Python机器学习】聚类算法任务,评价指标SC、DBI、ZQ等系数详解和实战演示(附源码 图文解释)

需要源码和数据集请点赞关注收藏后评论区留言私信~~~ 一、聚类任务 设样本集S{x_1,x_2,…,x_m}包含m个未标记样本&#xff0c;样本x_i(x_i^(1),x_i^(2),…,x_i^(n))是一个n维特征向量。 聚类在分簇过程的任务是建立簇结构&#xff0c;即要将S划分为k&#xff08;有的聚类算法…

你不知道的 Git 技巧:如何实现核心代码保护

大家好&#xff0c;我是 shixin。 前段时间完成了一个核心代码保护的功能&#xff0c;目标是在关键代码被修改及时同步给其他人&#xff0c;避免没经过 review 就上线导致问题&#xff0c;提示的效果图如下&#xff1a; 在实现的过程中&#xff0c;用到一些平时使用不多的 Git…

微服务框架 SpringCloud微服务架构 多级缓存 48 多级缓存 48.8 查询Redis 缓存

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 多级缓存 文章目录微服务框架多级缓存48 多级缓存48.8 查询Redis 缓存48.8.1 OpenResty的Redis模块48 多级缓存 48.8 查询Redis 缓存 48.8…

spring切入点函数

切入点函数&#xff1a;用于执行切入点函数 1.execution 1.最为重要的切入点函数&#xff0c;功能最全 2.可以执行方法切入点表达式&#xff0c;可以执行类切入点表达式&#xff0c;可以执行包切入点表达式 弊端&#xff1a;书写比较麻烦 2.args 1.作用&#xff1a;主要用…

原创10个python自动化化案例,一口一个高效办公!

以下为我的自动化办公代码&#xff0c;有需要的同学建议点赞收藏并熟读背诵&#xff01;&#xff08;持续更新&#xff09; 1.自动化批量调整word中含有关键词句子的样式 就随便拿一段我在网上找到的文字来做例子&#xff1a; 若关键词为“资金”&#xff0c;则处理后的word…

CentOS不再维护,跃跃欲试AlmaLinux

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是【IT邦德】&#xff0c;江湖人称jeames007&#xff0c;10余年DBA工作经验 一位上进心十足的【大数据领域博主】&#xff01;&#x1f61c;&#x1f61…

CSS基础总结(三)盒子模型

文章目录 一、概述 二、组成 1. 边框&#xff08;border&#xff09; 2.内边距&#xff08;padding&#xff09; 3.外边距&#xff08;margin&#xff09; 三、阴影 1.盒子阴影 2.文字阴影 四、综合案例 1.新浪导航栏 2.京东商品模块 一、概述 所谓 盒子模型&#xff1a…

Kubernetes自定义监控指标——Prometheus Adapter实战演练

1、概述 kubernetes的监控指标分为两种&#xff1a; Core metrics(核心指标)&#xff1a;从 Kubelet、cAdvisor 等获取度量数据&#xff0c;再由metrics-server提供给 kube-scheduler、HPA、 控制器等使用。 Custom Metrics(自定义指标)&#xff1a;由Prometheus Adapter提供…

小伙伴们-GO-带你揭开Linux的神秘面纱

文章目录1、Linux的神秘面纱2、Linux操作系统优秀特质3、Linux操作系统应用领域4、解刨-linux系统结构5、带你一探Linux系统-满血复活的启动过程6、Linux 骨架-文件系统与目录结构6.1、Linux 文件系统概览6.2 、linux/unix 文件系统-奠基石6.2.1、 硬盘存储小知识6.2.2、 inode…

重写Nacos服务发现:多个服务器如何跨命名空间,访问公共服务?

一、问题背景 在开发某个公共应用时&#xff0c;笔者发现该公共应用的数据是所有测试环境&#xff08;假设存在 dev/dev2/dev3&#xff09;通用的。 这就意味着只需部署一个应用&#xff0c;就能满足所有测试环境的需求&#xff1b;也意味着所有测试环境都需要调用该公共应用…

LLVM浅析

LLVM的探索 编译器的作用就是将源码编译成可以运行的程序。 终端按顺下敲入 vim hello.py python hello.py vim hello.c clang hello.c ./a.out vim main.m #imclude<stdio.h> int main(int argc, char *argv[]){printf("hello word!"); };LLVM概述 从写代码…

【Python天气预报系统】又要降温,这个冬天你准备好棉衣秋裤了吗?看了不后悔系列之Python打造智能天气预报系统,爆赞。

前言 鼎鼎大名的南方城市长沙很早就入冬了&#xff0c;街上各种大衣&#xff0c;毛衣&#xff0c;棉衣齐齐出动。 这段时间全国各地大风呜呜地吹&#xff0c;很多地方断崖式降温。瑟瑟发抖.jpg 虽然前几天短暂的温度回升&#xff0c;但肯定是为了今天的超级降温&#xff0c;…

毕业设计 - 基于java web的城市公交查询系统的设计与实现【源码+论文】

文章目录前言一、项目设计1. 模块设计2. 实现效果二、部分源码项目工程前言 今天学长向大家分享一个 java web 毕业设计项目: 基于java web的城市公交查询系统的设计与实现 一、项目设计 1. 模块设计 系统功能的划分方式可以分成很多种类&#xff0c;但是我按照界面流程将它…

“人生搜索引擎” # Rewind

你想找什么东西&#xff0c;只需要在搜索引擎上输入关键词&#xff0c;它就会把“相关记忆”给你提取出来。这也就是 Rewind 这款搜索引擎想解决的问题。Rewind 给自身的定义是&#xff1a;The Search Engine For Your Life也就是你人生的搜索引擎&#xff0c;它声称能快速搜索…

宠物狗大学生网页设计模板 静态HTML动物保护学生网页作业成品 DIV CSS动物主题静态网页

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

微信小程序 | 小程序WXSS-WXML-WXS

&#x1f5a5;️ 微信小程序 专栏&#xff1a;小程序WXSS-WXML-WXS &#x1f9d1;‍&#x1f4bc; 个人简介&#xff1a;一个不甘平庸的平凡人&#x1f36c; ✨ 个人主页&#xff1a;CoderHing的个人主页 &#x1f340; 格言: ☀️ 路漫漫其修远兮,吾将上下而求索☀️ &#x1…

高并发下秒杀商品,这9个细节你必须掌握好

目录&#xff1a;导读 前言 一、瞬时高并发 二、页面静态化 三、秒杀按钮 四、读多写少 五、缓存问题 1、缓存击穿 2、缓存穿透 六、库存问题 1、预扣库存 2、数据库扣减库存 3、redis扣减库存 4、 lua脚本扣减库存 七、分布式锁 八、mq异步处理 1、消息丢失问…