【刷题笔记】二维数组地址计算+算法分析+进制转换

news2025/4/18 8:20:11

目录

一、二维数组地址计算

题目:

分析:

解答:

二、算法分析举例

题目:

分析:

解答:

三、进制转换

题目:

分析:

解答:


一、二维数组地址计算

题目:

        二维数组X按行顺序存储,其中每个元素占1个存储单元。若X[4][4]的存储地址为Oxf8b82140,X[9][9]的存储地址为Oxf8b8221c,则X[7][7]的存储地址为?

分析:

        本题只是告知了二维数组两个位置的地址。需要知道另一个位置的地址,那么我们就需要根据行数和列数进行求解。

        思路1:对此,即然我们不知道具体的行号、列号以及起始位置,可以根据两个已知条件列出等式,求解二元一次方程组即可。

        但是,思路1没有充分利用题中给的条件:每个元素占1个存储单元,所以有优化方案思路2。

        思路2:我们可以根据两个已知条件简单的算出每个行占用的存储单元,即X[4][4]只需要加上5就可以得到X[4][9]了,而得到的位置和X[9][9]相差5行,地址相减就可以得到每个行占用的存储单元。然后X[7][7]不就是在X[4][4]的基础上增加了3行,在向右增加了3个存储单位,就可以得到答案了。

解答:

二、算法分析举例

题目:

        求函数返回值,输入x=9999。

int func(int x){
    int count=0;
    while (x)
    {
        count++;
        x=x&(x-1);//与运算
    }
    return count;
}

分析:

        在拿到一道程序输入题的时候,不可盲目带入运算。即然给了一段程序,那么它应该是完成某些功能进行设计的。我们不妨首先分析出此段程序的功能。(带入简单的例子进行分析)

        得到程序功能后,往往解答就简单了。

解答:

        针对于此程序,我们不妨带入7进去运算。既然涉及到位运算-7(111(2))。count肯定是一个计数器,我们需要得到其统计的是什么个数。

         可以发现,随着每一次循环原来二进制中的0会多一个,直到原数全为0.可以发现此算法就是统计当前数存在多少个1的。了解这点后,我们只需要对十进制数9999进行二进制展开查看1的个数即可。

        9999 = 10011100001111,一共有8个零,这也是函数的返回值。

三、进制转换

题目:

牛客网链接:进制转换_牛客题霸_牛客网

描述

        给定一个十进制数M,以及需要转换的进制数N。将十进制数M转化为N进制数

输入描述

        输入为一行,M(32位整数)、N(2 ≤ N ≤ 16),以空格隔开。

输出描述

        为每个测试实例输出转换后的数,每个输出占一行。如果N大于9,则对应的数字规则参考16进制(比如,10用A表示,等等)

示例

输入:7 2
输出:111

分析:

        按照正常十进制转换其余进制数的方法来。除数取余法。需要注意每次取余保存,需要逆置以及针对负数情况。

        对于取余数保存的时候利用字符串,我们可以针对0~16写一个字符数组,这样就可以应对字符串拼接问题。

解答:

#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

int main()
{
    int m, n;
    cin >> m >> n;
    string res, str = "0123456789ABCDEF";
    bool flag = false;
    if (m < 0){
        flag = true;
        m = -m;
    }
    do{
        res += str[m % n];
        m  /= n;
    }while(m);
    if (flag) res += "-";
    reverse(res.begin(), res.end());
    cout << res << endl;
    return 0;
}

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

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

相关文章

3.19 makefile用法及变量(自定义变量、自动变量、隐含变量)

目录 makefile概述 makefile创建变量的目的 自定义变量 makefile变量的赋值 自动变量 makefile隐含变量 makefile概述 makefile重要性 会不会写makefile&#xff0c;从一个侧面说明了一个人是否具备完成大型工程的能力 make是一个命令工具&#xff0c;是一个解释makefil…

Docker高频使用命令总结(镜像与容器命令)

目录 一.Docker常用命令总结 1.镜像命令管理 2.容器命令管理 二.Docker镜像操作命令 1.docker search&#xff1a;搜索镜像 2.docker pull&#xff1a;下载镜像 3.docker push&#xff1a;上传镜像 4.docker images&#xff1a;查看本地镜像 5.docker inspect &#x…

全球最大蒸馏体量干邑集团,邀请酣客老王讲授产品设计大师课

酒作为文化符号,寄托着全人类的精神追求,与历史、艺术为伍,充当着国际间友好交流的使者。为了弘扬中国白酒文化,把品质卓越的中国酱酒带到全世界,也为了给中国的烈酒爱好者讲清中外烈酒之间的工艺与文化差异,酣客君丰发起了“中国酱酒世界行”,不远万里探访欧洲各国名酒产区,一…

Flutter学习之旅 -网格布局

GridView列表三种形式 可以通过GridView.count实现网格布局 /* 格式: GridView.count(crossAxisCount: 一行显示数量,children: [component(),...],) */ class MyHomePage extends StatelessWidget {const MyHomePage({Key? key}) : super(key: key);overrideWidget build(B…

如何利用问卷工具助力活动开展,实现高效数据收集?

问卷调查是一种常用的活动开展方式&#xff0c;它可以帮助我们更好地了解参与者的需求和意见&#xff0c;为活动的开展提供有力的参考和依据。 1、了解期望和需求&#xff1a;在活动中&#xff0c;我们可以事先通过问卷调查了解参与者的需求、意见、对活动的需求和期望&#x…

PCB制板之前的DFM分析

PCB制板之前的DFM分析 1.华秋DFM分析2.AD18输出IPC文件3.华秋DFM分析开短路 1.华秋DFM分析 1.打开华秋DFM软件&#xff0c;目前先用这软件做DFM分析&#xff0c;主要是简单容易上手操作&#xff0c;并且分析完成之后可以一键下单。 2.将输出的gerber文件导入华秋DFM这个软件…

ubuntu18.04 + 3060 安装测试

分区 在这里&#xff0c;我们进行手动分区&#xff0c;假设你留出的空闲分区为 80G&#xff0c;点击空闲盘符&#xff0c;点击""进行分区&#xff0c;如下&#xff1a; 1&#xff09;efi&#xff1a;如果是单硬盘&#xff0c;在唯一的一个空闲分区上添加&#xff0…

为项目创建Qframework!

liangxiegame/QFramework: Unity3D System Design Architecture (github.com) 下载这个download 在unity中打开&#xff01; 就可以啦 ———— 这里总结一下UI和自动脚本两个非常常用的功能&#xff1a; UI https://www.bilibili.com/video/BV1QK411m7g4/?spm_id_from…

美格智能发布基于高通QCS8550处理器的高算力AI模组SNM970,定义未来终端新体验

近日&#xff0c;全球领先的无线通信模组及解决方案提供商美格智能发布了高算力AI模组SNM970。该产品是行业首批基于高通QCS8550处理器开发的AI模组产品&#xff0c;并凭借卓越的8核高通Kryo™ CPU、综合AI算力高达48Tops、支持Wi-Fi 7等特性&#xff0c;助力将运算效能和灵活性…

【Go Web开发】Web初识、RESTful架构和RESTful API详解、Gin框架的安装和简单使用

博主简介&#xff1a;努力学习的大一在校计算机专业学生&#xff0c;热爱学习和创作。目前在学习和分享&#xff1a;数据结构、Go&#xff0c;Java等相关知识。博主主页&#xff1a; 是瑶瑶子啦所属专栏: Go语言核心编程近期目标&#xff1a;写好专栏的每一篇文章 文章目录 一、…

YonLinker连接集成平台构建新一代产业互联根基

近日&#xff0c;由用友公司主办的“2023用友BIP技术大会“在用友产业园&#xff08;北京&#xff09;盛大召开&#xff0c;用友介绍了更懂企业业务的用友BIP-iuap平台&#xff0c;并发布了全面数智化能力体系&#xff0c;助力企业升级数智化底座&#xff0c;加强加速数智化推进…

入门机器学习,华盛顿大学4个案例分享

机器学习是一门从数据中研究算法的多领域交叉学科&#xff0c;研究计算机如何模拟或实现人类的学习行为。现在&#xff0c;我们可以看到很多机器学习的实际应用&#xff0c;例如语音搜索技术、图像识别、自动翻译、自动驾驶汽车等。机器学习已经成为许多行业的焦点&#xff0c;…

【学习笔记】GeoServer——使用Java发布图层(SHP文件和DB数据库),附自用工具类

文章目录 SHP文件发布逻辑 1、获取到geoserver的manager对象2、调用createWorkArea方法&#xff0c;参入manager&#xff0c;创建空间空间 workArea3、调用createShpDataPool方法&#xff0c;创建数据存储4、发布样式Style.5、发布图层 调用业务层库发布shp文件图层业务逻辑如下…

Ambari 2.7.5+HDP3.1.5离线扩容不同配置组

确保ambari server节点启动&#xff0c;Httpd 服务安装并启动&#xff0c;可参考&#xff1a; Ambari 2.7.5HDP3.1.5离线安装详细教程&#xff08;附安装包&#xff09;https://blog.csdn.net/QYmufeng/article/details/122827261 1.安装ambari agent 在需要添加的主机上安装…

吴恩达与OpenAI官方合作的ChatGPT提示工程课程笔记

吴恩达与OpenAI官方合作的ChatGPT提示工程课程笔记 &#x1f978; 下述代码均在煮皮特上运行喔 LLMs(large language models) Base LLM&#xff1a;基于文本训练数据来预测做“文字接龙” Instruction Tuned LLM&#xff08;指令调整型LLM&#xff09;:接受了遵循指示的培训&am…

SpringBoot 集成 RocketMQ

项目地址 前面我们介绍了怎么使用 docker 安装 rocketMQ&#xff0c;现在我们就来试试使用 SpringBoot 集成之后&#xff0c;怎么发送消息和消费消息。 集成步骤 工程结构 第一步&#xff1a;引入相关依赖 <dependency><groupId>org.projectlombok</groupId…

【新星计划-2023】什么是OSI七层模型?一文带你了解

一、什么是OSI七层模型 OSI七层模型又叫做“OSI参考模型”&#xff0c;它的全称为“开放系统互连参考模型”&#xff0c;它是一个七层的、抽象的模型体&#xff0c;不仅包括一系列抽象的术语或概念&#xff0c;也包括具体的协议。那么为什么会出现OSI参考模型&#xff1f; 原…

第 6 章 整合 Phoenix

6.1 Phoenix 简介 6.1.1 Phoenix 定义 Phoenix 是 HBase 的开源 SQL 皮肤。可以使用标准 JDBC API 代替 HBase 客户端 API 来创建表&#xff0c;插入数据和查询 HBase 数据。 6.1.2 为什么使用 Phoenix 官方给的解释为&#xff1a;在 Client 和 HBase 之间放一个 Phoenix 中…

WatchGuard 防火墙策略、配置和日志分析器

获取 Internet 活动见解并及时了解安全事件是一项具有挑战性的任务&#xff0c;因为安全设备会生成大量的安全和流量日志。Firewall Analyzer 针对 WatchGuard 防火墙设备的报告功能具有一系列功能&#xff0c;使您能够增强网络安全。WatchGuard 日志分析器软件&#xff0c;可让…