算法学习——华为机考题库9(HJ56 - HJ63)
算法学习——华为机考题库9(HJ56 - HJ63)
HJ56 完全数计算
描述
完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。
它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。
例如:28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。
输入n,请输出n以内(含n)完全数的个数。
数据范围: 1≤n≤5×10 5
输入描述:
输入一个数字n
输出描述:
输出不超过n的完全数的个数
示例

代码解释
#include <cmath>
#include <iostream>
#include <vector>
using namespace std;//如果p是质数,且2^p-1也是质数,那么(2^p-1)X2^(p-1)便是一个完全数。bool is_prime(int num) //判断质数
{for(int i=2 ; i< sqrt(num) ; i++){if(num % i == 0) return false;}return true;
}int main() {int n , result = 0 ;cin>>n;for(int i=2 ; i<sqrt(n) ; i++){int tmp = pow(2, i) - 1;if(is_prime(i) && is_prime(tmp)){int prefect = pow(2,i-1) * tmp;if(prefect > 0 && prefect < n) result ++;}}cout<<result;
}
// 64 位输出请用 printf("%lld")
HJ57 高精度整数加法
描述
输入两个用字符串 str 表示的整数,求它们所表示的数之和。
数据范围: 1≤len(str)≤10000
输入描述:
输入两个字符串。保证字符串只含有’0’~'9’字符
输出描述:
输出求和后的结果
示例

代价解析
#include <algorithm>
#include <iostream>
#include <stack>
#include <string>
#include <vector>
using namespace std;int main() {string str1 , str2;cin>>str1>>str2;stack<int> mystack;reverse(str1.begin(), str1.end());reverse(str2.begin(), str2.end());int i;for(i=0 ; i< max(str1.size() , str2.size()) ; i++){int tmp;if( i<str1.size() && i< str2.size()){tmp = str1[i] - '0' + str2[i] - '0';mystack.push(tmp);}else if( i<str1.size() && i >= str2.size()){tmp = str1[i] - '0';mystack.push(tmp);}else if( i >= str1.size() && i < str2.size()){tmp = str2[i] - '0';mystack.push(tmp);}}vector<int> num;string result;while(mystack.size() > 0){num.push_back( mystack.top() );mystack.pop();}for(int i=num.size()-1 ; i>0 ; i--){if(num[i] >= 10) {int tmp = num[i];num[i] = tmp %10;num[i-1] += tmp / 10; }}for(auto it:num) cout<<it;}
// 64 位输出请用 printf("%lld")
HJ58 输入n个整数,输出其中最小的k个
描述
输入n个整数,找出其中最小的k个整数并按升序输出
本题有多组输入样例
数据范围: 1≤n≤1000 ,输入的整数满足 1≤val≤10000
输入描述:
第一行输入两个整数n和k
第二行输入一个整数数组
输出描述:
从小到大输出最小的k个整数,用空格分开。
示例

代码解释
#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;int main() {int n, k;cin >> n >> k;vector<int> nums;int tmp;while(n--) { cin>>tmp;nums.push_back(tmp);}sort(nums.begin(), nums.end());for(int i=0 ; i<k ;i++)cout<<nums[i]<<' ';
}
// 64 位输出请用 printf("%lld")
HJ59 找出字符串中第一个只出现一次的字符
描述
找出字符串中第一个只出现一次的字符
**数据范围:**输入的字符串长度满足 1≤n≤1000
输入描述:
输入一个非空字符串
输出描述:
输出第一个只出现一次的字符,如果不存在输出-1
示例

代码解析
#include <iostream>
#include <vector>
using namespace std;int main() {string str;cin>>str;vector<int> myvec(26,0);for(int i=0 ; i < str.size() ; i++){myvec[ str[i] - 'a' ] += 1 ;}bool flag = false;for(int i=0 ; i<str.size() ; i++){if(myvec[str[i] - 'a'] == 1) {flag = true;cout<< str[i];break;}}if(flag == false) cout<<"-1";}
// 64 位输出请用 printf("%lld")
HJ60 查找组成一个偶数最接近的两个素数
描述
任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对。
**数据范围:**输入的数据满足 4≤n≤1000
输入描述:
输入一个大于2的偶数
输出描述:
从小到大输出两个素数
示例

代码解释
#include <iostream>
using namespace std;bool cheak( int num )
{for(int i=2 ; i<num ; i++){if(num%i == 0) return false;}return true;
}int main() {int num;cin>>num;int low,hight;for(int i=num/2 ; i>=2 ; i--){if( cheak(i) == true ){low = i;if(cheak( num - low) == true){hight = num - low;cout<<low<<endl;cout<<hight<<endl;return 0;}}}}
// 64 位输出请用 printf("%lld")
HJ61 放苹果
描述
把m个同样的苹果放在n个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?
注意:如果有7个苹果和3个盘子,(5,1,1)和(1,5,1)被视为是同一种分法。
**数据范围:**0≤m≤10 ,1≤n≤10 。
输入描述:
输入两个int整数
输出描述:
输出结果,int型
示例

代码解释
#include <iostream>
#include <vector>
using namespace std;int m , n;int track( int m , int n )
{if(m<0||n<0) return 0;else if(m==1 || n==1) return 1;else return track(m, n-1) + track(m-n, n) ;
}int main() {cin>>m>>n;cout<<track(m, n);
}
// 64 位输出请用 printf("%lld")
HJ62 查找输入整数二进制中1的个数
描述
输入一个正整数,计算它在二进制下的1的个数。
注意多组输入输出!!!!!!
数据范围: 1≤n≤2 31−1
输入描述:
输入一个整数
输出描述:
计算整数二进制中1的个数
示例

代码解析
#include <iostream>
using namespace std;int main() {int num;while(cin>>num){int result = 0;for(int i=0 ; i<32 ; i++){ if( ((num>>i) & 0x01 )== 1) result++;}cout<<result<<endl;;}}
// 64 位输出请用 printf("%lld")
HJ63 DNA序列
描述
一个 DNA 序列由 A/C/G/T 四个字母的排列组合组成。 G 和 C 的比例(定义为 GC-Ratio )是序列中 G 和 C 两个字母的总的出现次数除以总的字母数目(也就是序列长度)。在基因工程中,这个比例非常重要。因为高的 GC-Ratio 可能是基因的起始点。
给定一个很长的 DNA 序列,以及限定的子串长度 N ,请帮助研究人员在给出的 DNA 序列中从左往右找出 GC-Ratio 最高且长度为 N 的第一个子串。
DNA序列为 ACGT 的子串有: ACG , CG , CGT 等等,但是没有 AGT , CT 等等
**数据范围:**字符串长度满足 1≤n≤1000 ,输入的字符串只包含 A/C/G/T 字母
输入描述:
输入一个string型基因序列,和int型子串的长度
输出描述:
找出GC比例最高的子串,如果有多个则输出第一个的子串
示例

代码解析
#include <iostream>
#include <string>
using namespace std;float cheack( string &str , int left , int right)
{int num = 0;for(int i=left ; i<=right ; i++){if(str[i] == 'C' || str[i] == 'G') num++;}return (float)num/(right-left + 1);
}int main() {int n;string str;cin>>str;cin>>n;int left = 0 , right = n-1;float rate = 0.0;string result;for( ; right < str.size() ; right++ , left++ ){ float tmp = cheack(str, left, right);if(tmp > rate) {rate = tmp;result.clear();result.assign(str.begin()+left, str.begin()+left+n);}}cout<<result;}
// 64 位输出请用 printf("%lld")
相关文章:
算法学习——华为机考题库9(HJ56 - HJ63)
算法学习——华为机考题库9(HJ56 - HJ63) HJ56 完全数计算 描述 完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。 它所有的真因子(即除了自身以外的约数)的和&…...
Maven安装,学习笔记,详细整理maven的一些配置
Maven 1. 初识Maven 2. Maven概述 Maven模型介绍 Maven仓库介绍 Maven安装与配置 3. IDEA集成Maven 4. 依赖管理 01. Maven课程介绍 1.1 课程安排 学习完前端Web开发技术后,我们即将开始学习后端Web开发技术。做为一名Java开发工程师,后端 Web开发技术…...
STM32--USART串口(2)串口外设
一、USART简介 可配置数据位:不需要校验就是8位,需要校验就选9位; 停止位:决定了帧的间隔; STM32F103C8T6USART:USART1挂载在APB2总线上,USART2和USART3挂载在APB1总线上; 二、USART框图 TXE…...
Unity之做一个最简单的FPS游戏demo
目录 😋FPS游戏Demo 💤1.新建FPS模板项目 ⚒️2.装备枪 💣3.设置射击功能 📺4.制造一个子弹预制体 🎮5.发射子弹 说起来小编学Unity差不多一个月了,都是利用上班摸鱼时间学的(doge.jpg&…...
【Springboot】单元测试Junit5应用
JUnit 5是一个功能强大的测试框架,常用于编写和执行这些单元测试。以下是一些JUnit 5中的常用注解、断言、前置条件、嵌套测试和参数化测试的例子: 1.环境启动 SpringBootTest 注解: classes SmartApplication.class:这个属性…...
【INTEL(ALTERA)】内部错误:子系统:PTI,文件:/quartus/tsm/pti/pti_delay_annotator.cpp
说明 由于英特尔 Quartus Prime Pro Edition 软件 23.2 及更早版本存在问题,因此在编译设计的 Retime 期间可能会出现此错误。 解决方法 此问题已在英特尔 Quartus Prime Pro Edition 软件 v23.3 中修复。 要在版本 23.2 中解决此问题,请通过以下相应链…...
大数据 - Spark系列《二》- 关于Spark在Idea中的一些常用配置
上一篇: 大数据 - Spark系列《一》- 从Hadoop到Spark:大数据计算引擎的演进-CSDN博客 目录 1. 🥙Idea中配置Live Templates来快速生成代码片段 2. 🥙Idea中配置文件模板自定义初始代码 3.🥙设置spark-submit提交程…...
android 设置未知来源等 AppOpsManager 权限的设置接口
开始客户让我们执行下面的CMD 代码 adb shell appops set com.android.chrome REQUEST_INSTALL_PACKAGES allow 后来 GTP 告诉我有 Setmode的方法,后面在设置里面找到了 OP_REQUEST_INSTALL_PACKAGES 这个,里面有个方法mAppOpsManager.setMode(AppOp…...
使用GPT实现一个简单的网站
背景 In this exciting tutorial video, you’ll discover how to use 文心一言, a powerful language model developed by 百度, to generate ReactJS code for a simple blog website. With 文心一言’s help, you can quickly create a blog website that’s easy to custom…...
回归预测 | Matlab实现CPO-CNN-LSTM-Attention冠豪猪优化卷积长短期记忆神经网络注意力机制多变量回归预测(SE注意力机制)
回归预测 | Matlab实现CPO-CNN-LSTM-Attention冠豪猪优化卷积长短期记忆神经网络注意力机制多变量回归预测(SE注意力机制) 目录 回归预测 | Matlab实现CPO-CNN-LSTM-Attention冠豪猪优化卷积长短期记忆神经网络注意力机制多变量回归预测(SE注…...
11:Servlet中初始化参数的获取与应用-Java Web
目录 11.1 Servlet初始化参数简介11.2 如何在Servlet中获取初始化参数11.3 基于注解的初始化参数(Servlet 3.0)11.4 区别总结11.5 应用场景总结 在构建Java Web应用程序时,Servlet是核心组件之一,它负责处理HTTP请求并生成响应。而…...
STM32的ADC采集传感器的模拟量数据
1、 由于项目上使用传感器采集数据,传感器可以输出模拟电压信号,但是模拟电压信号的输出范围是1-5V,而STM32的ADC采集电压范围是0-3.3V,此时可以用一个简单的分压电路将1-5V的电压将至0.5V到2.5V的范围。 2、电阻分压电路可以使用…...
opencvb 十七 使用cmake配置opencv c++项目
1、cmake简介 1.1 cmake是什么 CMake是一个开源、跨平台的编译(Build)工具,是用来构建、测试和打包软件的。它能够用简单的语句来描述所有平台的编译过程。它能够输出各种各样的makefile或者project文件,能测试编译器所支持的C特…...
Java8 中文指南(一)
Java8 中文指南(一) 文章目录 Java8 中文指南(一)《Java8 指南》中文翻译接口的默认方法(Default Methods for Interfaces)Lambda 表达式(Lambda expressions)函数式接口(Functional Interfaces)方法和构造函数引用(Method and Co…...
引流技术-通过文件中增加联系方式并传播
文章目录 前言文档增加联系方式扩散网盘扩散自建网站借力 注意 前言 很多人在找资料的时候可能都遇到过下图情况: 1、文档最后面留一个自己的联系方式; 2、找的一堆文件中都有相同的情况; 3、一段时间全网搜到的很多相同文件也有这个联系方式…...
分布式搜索引擎_学习笔记_2
分布式搜索引擎_学习笔记_2 在昨天的学习中,我们已经导入了大量数据到elasticsearch中,实现了elasticsearch的数据存储功能。但elasticsearch最擅长的还是搜索和数据分析。 所以今天,我们研究下elasticsearch的数据搜索功能。我们会分别使用…...
【学习笔记】树上差分总结(点差分/边差分)
一.树上差分的基本概念 1.树上差分的定义 树上差分,顾名思义,意思就是在树上做差分。 至于什么是差分呢?如果不会的同学,可以先看看我的这篇博客:一维,二维差分の详解(简单易懂)_一维差分-CSDN博客 2.树…...
Vue.js设计与实现(霍春阳)
Vue.js设计与实现 (霍春阳) 电子版获取链接:Vue.js设计与实现(霍春阳) 编辑推荐 适读人群 :1.对Vue.js 2/3具有上手经验,且希望进一步理解Vue.js框架设计原理的开发人员; 2.没有使用过Vue.js,但对Vue.js框架设计感兴趣…...
go消息队列RabbitMQ - 订阅模式-fanout
1、发布订阅 订阅模式,消息被路由投递给多个队列,一个消息被多个消费者获取。 1) 可以有多个消费者 2) 每个消费者有自己的queue(队列) 3) 每个队列都要绑定到Exchange(交换机&…...
科普类——5G远程实时操控技术在国内港口应用简介(十三)
在中国,5G远程实时操控技术已经在多个港口得到应用,并且应用规模不断扩大,展现出良好的发展前景。以下是一些具体的应用案例: 上港集团洋山港:上港集团与华为合作,在全球港口首次将F5G技术应用于超远程控制…...
TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...
智能AI电话机器人系统的识别能力现状与发展水平
一、引言 随着人工智能技术的飞速发展,AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术,在客户服务、营销推广、信息查询等领域发挥着越来越重要…...
Java + Spring Boot + Mybatis 实现批量插入
在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法:使用 MyBatis 的 <foreach> 标签和批处理模式(ExecutorType.BATCH)。 方法一:使用 XML 的 <foreach> 标签ÿ…...
给网站添加live2d看板娘
给网站添加live2d看板娘 参考文献: stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下,文章也主…...
【Post-process】【VBA】ETABS VBA FrameObj.GetNameList and write to EXCEL
ETABS API实战:导出框架元素数据到Excel 在结构工程师的日常工作中,经常需要从ETABS模型中提取框架元素信息进行后续分析。手动复制粘贴不仅耗时,还容易出错。今天我们来用简单的VBA代码实现自动化导出。 🎯 我们要实现什么? 一键点击,就能将ETABS中所有框架元素的基…...
如何在Windows本机安装Python并确保与Python.NET兼容
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...
OCR MLLM Evaluation
为什么需要评测体系?——背景与矛盾 能干的事: 看清楚发票、身份证上的字(准确率>90%),速度飞快(眨眼间完成)。干不了的事: 碰到复杂表格(合并单元…...
AWSLambda之设置时区
目标 希望Lambda运行的时区是东八区。 解决 只需要设置lambda的环境变量TZ为东八区时区即可,即Asia/Shanghai。 参考 使用 Lambda 环境变量...
