蓝桥杯算法训练合集十七 1.数字反转2.试题39713.矮人采金子4.筛法5.机器指令
目录
1.数字反转
2.试题3971
3.矮人采金子
4.筛法
5.机器指令
1.数字反转
问题描述
给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例 2) 。
输入格式
输入共 1 行,一个整数 N。
输出格式
输出共 1 行,一个整数,表示反转后的新数。
样例输入1
123
样例输出1
321
样例输入2
-830
样例输出2
38
数据规模和约定
-1,000,000,000 ≤ N≤1,000,000,000。
示例代码
#include <iostream>
using namespace std;int main() {string str;cin >> str;int len = str.length();if (str[0] == '-') {//如果是负数cout << "-";int flag = 0;for (int i = len - 1; i > 0; i--) {if (str[i] == '0') {if (flag == 1) {cout << str[i];}}else {cout << str[i];flag = 1;}}}else {int flag = 0;for (int i = len - 1; i >= 0; i--) {if (str[i] == '0') {if (flag == 1) {cout << str[i];}}else {cout << str[i];flag = 1;}}}return 0;
}
2.试题3971
问题描述
有一些正整数,如果这个正整数分解质因数之后,只包含2或3或5,那么该数即为“丑数”,比如100就是“丑数”,100分解质因数之后只包含2和5;14就不是“丑数”,因为14分解质因数之后,包含了7.
输入正整数n,请写程序判断n是否是“丑数”,是“丑数”则输出“yes”,否则输出“no”。
输入格式
一个正整数n
输出格式
一个字符串yes 或no
样例输入
15
样例输出
yes
样例输入
242
样例输出
no
数据规模和约定
n不超过C语言整型范围
示例代码
#include <iostream>
using namespace std;
void dfs(int n) {if (n == 1) {cout << "yes";return ;}if (n % 2 == 0) {dfs(n / 2);}else if(n%3==0){dfs(n / 3);}else if (n % 5 == 0) {dfs(n / 5);}else {cout << "no";return;}
}
int main() {int n;cin >> n;if (n == 1) {//1比较特别cout << "no";return 0;}dfs(n);return 0;
}
3.矮人采金子
问题描述
矮人们发现了 N 个新的金矿。据测算,开采第 i 个金矿会带来 Ai 个金币的收入。但是,开采一个金矿本身需要花费 1000 个金币来开挖隧道。矮人们可以选择是否开采每个金矿。他们想知道,通过合理的选择,他们最多可以有多少个金币的净收入。你能回答他们的问题吗?
输入格式
第一行包含一个正整数 N 。(1 ≤ N ≤ 100)。
第二行为 N 个用空格隔开的非负整数,其中第 i 个数表示 Ai,每个数
不超过 10000。
输出格式
输出仅一行,只包含一个数字,即矮人们所能获得的最高的净收入。
样例输入
4
2012 999 1481 23
样例输出
1493
示例代码
#include <iostream>
using namespace std;int main() {int n,a,sum=0;cin >> n;for (int i = 0; i < n; i++) {cin >> a;if (a > 1000) {sum += (a - 1000);}}cout << sum;return 0;
}
4.筛法
问题描述
炫炫学了筛法之后,很想用筛法求欧拉函数。他决定求1到N的所有数的欧拉函数值。
输入格式
输入的第一行包含1个整数n,。
输出格式
输出若干行,每行包含一个整数,第i行表示i的欧拉函数值
样例输入
2
样例输出
1
1
数据规模和约定
n<=500000
示例代码
#include <iostream>
using namespace std;
void phi(int n) {double res=double(n);for (int i = 2; i * i <= n; i++) {if (n % i == 0) {res = res * (i - 1) / i;while (n % i == 0) {n /= i;}}}if (n > 1) {res = res * (n - 1) / n;}cout << int(res) << endl;
}int main() {int n;cin >> n;for (int i = 1; i <= n; i++) {phi(i);}return 0;
}
5.机器指令
我觉得测试点是错的
问题描述
A同学在一台简陋的计算机上运行程序H。(同《计算机科学导论》一书的附录C)假设这台机器的CPU仅有16个通用寄存器(register)(用十六进制的0到F编号),主存只有256个内存单元(memory cell)(用十六进制00到FF编号),每个机器指令长两个字节(用十六进制数表示),各种指令的解释如下:
1RXY 将内存单元XY里的数据复制到寄存器R中
2RXY 将数据XY存至寄存器R中
3RXY 将寄存器R中的数据复制到内存单元XY中
40RS 将寄存器R中的数据复制到寄存器S中
5RST 将寄存器S和寄存器T中储存的整数相加并存放在寄存器R中
BRXY 如果寄存器R中的内容和寄存器0中的内容相同,则程序计数器指向XY内存单元(执行JUMP操作),否则程序按原来流程继续运行
C000 结束程序
在一个指令循环中,CPU每次提取程序计数器指向的内存单元和下一个内存单元中两个十六进制数组成的四位十六进制数作为机器指令并执行,若在指令执行时未进行JUMP操作,则把程序计数器向后移两个单元。一旦程序开始运行,CPU将进入指令循环直到出现“结束程序”的命令为止(C000)。现在这个程序H只需使用从00到0F的内存单元,且在程序开始前程序计数器(program counter)已经指向了00单元。输入程序H运行前00到0F内存单元里存放的数据,请输出程序H结束后00到0F内存单元里的数据。
输入格式
输入一行16个十六进制数(每个十六进制数占两位,可能以0开头),用空格隔开,分别表示程序H运行前00到0F内存单元中存放的数据。
输出格式
输出一行16个十六进制数(每个十六进制数占两位,可能以0开头),用空格隔开,分别表示程序H结束后00到0F内存单元中存放的数据。
样例输入
2A 99 3A 00 1A 03 3A 02 C0 00 00 00 00 00 00 00
样例输出
99 99 00 00 1A 03 3A 02 C0 00 00 00 00 00 00 00
样例说明
运行指令2A99:将十六进制数99存至寄存器A中;
运行指令3A00:将寄存器A中的数据(99)复制到内存单元00中;
运行指令1A03:将内存单元03里的数据(00)复制到寄存器A中;
运行指令3A02:将寄存器A中的数据(00)复制到内存单元02中;
运行指令C000:结束程序。
示例代码
#include <iostream>
using namespace std;
int a[16] = { 0 }, b[16] = { 0 };
int find_index(char n) {//16进制转化为10进制if (n >= '0' && n <= '9') {return int(n) - 48;}else {return int(n) - 55;}
}
void shizhuanshiliu(int n) {//10进制转化为16进制输出int first, second;first = n / 16;second = n % 16;if (first >= 10) {cout << char(first + 55);}else {cout << char(first + 48);}if (second >= 10) {cout << char(second + 55) << " ";}else {cout << char(second + 48) << " ";}return;
}
int main() {string str;int flag = 0, count = 0;for (int i = 0; i < 16; i++) {cin >> str;a[i] = find_index(str[0]) * 16 + find_index(str[1]);//为储存的数据b[i] = a[i];//命令}while (b[count]/16!=12){//当首字母为C就结束if (b[count] / 16 == 1) {//将内存单元XY里的数据复制到寄存器R中int temp = b[count] % 16;count++;a[temp] = a[b[count]];count++;}else if (b[count] / 16 == 2) {//将数据XY存入寄存器R中int temp = b[count] % 16;count++;a[temp] = a[count];count++;}else if (b[count] / 16 == 3) {//将寄存器R中的数据复制到寄存器XY中int temp = b[count] % 16;count++;a[b[count]] = a[temp];count++;}else if (b[count] / 16 == 4) {//将寄存器R中的数据复制到寄存器S中count++;a[b[count] % 16] = a[b[count] / 16];count++;}else if (b[count] / 16 == 5) {//将寄存器S和寄存器T中储存的数相加并存放在寄存器R中int temp = b[count] % 16;count++;a[temp] = a[b[count] / 16] + a[b[count] % 16];count++;}else if (b[count] / 16 == 11) {//如果寄存器R中的内容和寄存器0的内容相同,则程序计数器指向XY内存单元,否则程序按照原来流程继续运行int temp = b[count] % 16;count++;if (temp == a[0]) {count = a[b[count]];}else {count++;}}}for (int i = 0; i < 16; i++) {shizhuanshiliu(a[i]);}return 0;
}
相关文章:
蓝桥杯算法训练合集十七 1.数字反转2.试题39713.矮人采金子4.筛法5.机器指令
目录 1.数字反转 2.试题3971 3.矮人采金子 4.筛法 5.机器指令 1.数字反转 问题描述 给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零&…...

第一章 初识 Spring Security
第一章 初识 Spring Security 1、权限管理 权限管理 基本上涉及到用户参与的系统都要进行权限管理,权限管理属于系统安全的范畴,权限管理实现了对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权的资…...
2023-02-20 关于回朔的思考
摘要: 考虑命运来回动荡交织,一些新的规划在不断的扩充, 而一些历史则开始陷入回朔。 有必要对历史和过往做一些规划和思考。 需要注意在这个阶段, 第一优先级是在反刍中将其最大化。 理论层: 一. 数据库的基础理论 ANSI SQL到词法解析和语法解析mysql的SQL层对…...

推荐系统[八]算法实践总结V1:淘宝逛逛and阿里飞猪个性化推荐:召回算法实践总结【冷启动召回、复购召回、用户行为召回等算法实战】
0.前言:召回排序流程策略算法简介 推荐可分为以下四个流程,分别是召回、粗排、精排以及重排: 召回是源头,在某种意义上决定着整个推荐的天花板;粗排是初筛,一般不会上复杂模型;精排是整个推荐环节的重中之重,在特征和模型上都会做的比较复杂;重排,一般是做打散或满足…...

适合初学者的超详细实用调试技巧(下)
我们日常写代码的时候,常常会遇到bug的情况,这个时候像我这样的初学者就会像无头苍蝇一样这里改改那里删删,调试的重要性也就显现出来,这篇文章接着上文来讲解。 上文地址:(8条消息) 适合初学者的超详细实用调试技巧&…...

C# String与StringBuilder 的区分
重点 1)它是比较的栈里面的值是否相等(值比较) 2)Equals它比较的是堆里面的值是否相等(引用地址值比较) 3)Object.ReferenceEquals(obj1,obj2)它是比较的是内存地址是否相等 问题描述: 今日提交代码时候,被检测工具发出修改建议。遂补充一下知识 1.什么…...
【麒麟】基于GPS北斗卫星技术的NTP网络时间服务器
【麒麟】基于GPS北斗卫星技术的NTP网络时间服务器 【麒麟】基于GPS北斗卫星技术的NTP网络时间服务器 麒麟系统NTP授时方案 设计思路: 在通用的麒麟服务器内部固定一块北斗卫星接收模块并引出卫星天线接口,卫星模块接收北斗卫星数据并解码输出时间数据&…...
“互联网+”下劳动关系认定的现状
1. 劳动关系的认定标准。依据目前我国法律的有关规定, 判定劳动关系存在两种情况:其一, 在有书面劳动合同的情况下, 这时应以书面合同作为认定标准;其二, 在没有书面合同的情况下, 则依据2005年劳社部的《关于确立劳动关系有关事项的通知》来认定, 其中第一条:“用人单位招用劳…...

LPWAN及高效弹性工业物联网核心技术方案
20多年前的一辆拖拉机就是一个纯机械的产品,里面可能并没有电子或者软件的构成;而随后随着软件的发展,拖拉机中嵌入了软件,它能控制发动机的功率及拖拉机防抱死系统;接下来,通过融入各种软件,拖…...
OPTIONS FMTSEARCH
FMTSEARCH 指定要检索的格式目录列表,语法如下:OPTIONS FMTSEARCH(catalog-specification-1<catalog-specification-2 … >);使用PROC FORMAT时可以定义格式目录,LIBRARYlibref或LIBRARYlibref.catalog。格式目录可以是libref或libref.…...

Python3 pip
Python3 pip pip 是 Python 包管理工具,该工具提供了对 Python 包的查找、下载、安装、卸载的功能。 软件包也可以在 https://pypi.org/ 中找到。 目前最新的 Python 版本已经预装了 pip。 注意:Python 2.7.9 或 Python 3.4 以上版本都自带 pip 工具…...

【2023-02-20】JS逆向之翼支付
提示:文章仅供参考,禁止用于非法途径 文章目录前言分析总结前言 真的好久没更了…… 提示:以下是本篇文章正文内容,下面案例可供参考 分析 进到网页,加载两个接口 applyLoginFactor 接口返回一个RSA公钥࿰…...

假如面试官问你Babel的原理该怎么回答
1. 什么是 Babel 简单地说,Babel 能够转译 ECMAScript 2015 的代码,使它在旧的浏览器或者环境中也能够运行。 // es2015 的 const 和 arrow function const add (a, b) > a b;// Babel 转译后 var add function add(a, b) {return a b; };Babel…...

深入Spring底层透析Bean创建过程之拨云见日篇
目录前言一.BeanFactory快速入门1. BeanFactory创建Bean2. BeanFactory和ApplicationContext的关系3. 和ApplicationContext区别(高频问点)4. BeanFactory的继承体系5. ApplicationContext的继承体系二.Bean实例化的基本流程(重点)前言 首先感谢您的阅览࿰…...

8 狗监控的封装
概述 为了保证嵌入式程序能够长时间稳定地运行,需要加入狗监控机制。狗监控的原理为:应用程序需要每隔一段时间来喂狗或保活,如果应用程序崩溃或者内核崩溃,导致长时间无法喂狗,则狗将超时,会自动重启系统。部分IPC芯片提供了硬件狗,对于没有硬件狗的,需要自行实现软件…...

基于卷积神经网络图像风格迁移系统的设计与实现(flask系统)
1.摘要 Leon Gatys 等人研发的深度神经网络使用神经的表达来分离任意图片的内容和风格,为生成艺术图片提供一个神经算法。本文基于Style Transfer算法,使用风格成本函数训练CNN,用卷积神经网络提取图像特征,依次提取内容图像的内…...

【1】linux命令每日分享——mkdir
大家好,这里是sdust-vrlab,Linux是一种免费使用和自由传播的类UNIX操作系统,Linux的基本思想有两点:一切都是文件;每个文件都有确定的用途;linux涉及到IT行业的方方面面,在我们日常的学习中&…...

实例2:树莓派GPIO控制外部LED灯闪烁
实例2:树莓派GPIO控制外部LED灯闪烁 实验目的 通过背景知识学习,了解四足机器人mini pupper搭载的微型控制计算机:树莓派。通过树莓派GPIO操作的学习,熟悉GPIO的读写控制。通过外部LED灯的亮灭控制,熟悉树莓派对外界…...

详解可变形注意力模块(Deformable Attention Module)
Deformable Attention(可变形注意力)首先在2020年10月初商汤研究院的《Deformable DETR: Deformable Transformers for End-to-End Object Detection》论文中提出,在2022CVPR中《Vision Transformer with Deformable Attention》提出应用了De…...

Java数据结构中链表分割及链表排序使用快速排序、归并排序、集合排序、迭代、递归,刷题的重点总结
本篇主要介绍在单链表进行分割,单链表进行分隔并使用快速排序、归并排序、集合排序、迭代、递归等方法的总结,愿各位大佬喜欢~~ 86. 分隔链表 - 力扣(LeetCode) 148. 排序链表 - 力扣(LeetCode) 目录 一…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...

Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...

Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...
可靠性+灵活性:电力载波技术在楼宇自控中的核心价值
可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...
渲染学进阶内容——模型
最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...