每日刷题-5

目录

一、选择题

二、算法题

1、不要二

2、把字符串转换成整数


一、选择题

1、

解析:printf(格式化串,参数1,参数2,.….),格式化串: printf第一个参数之后的参数要按照什么格式打印,比如%d--->按照整形方式打印,不过格式串有一定规定,%之后跟上特定的字符才代表一定的格式化。%Q—>无效的格式—>编译器会忽略%,printf("%Q");—>直接输出Q。

所以printf("%%%%\n");会输出%%。

2、

解析:这个程序使用了一个宏定义 SQR(A),用来计算一个表达式的平方。但是,这个宏定义有一个问题,就是没有用括号把 A 包起来,导致在使用宏展开时,可能会出现优先级的错误

所以SQR(y+z) 实际上被展开为 y+zy+z,而不是 (y+z)(y+z)。随后计算可得到x的值为0。

3、

解析:这个函数是一个递归函数,也就是说它会调用自身来计算结果。这个函数的逻辑是,如果 n 小于 2,就返回 n 本身,否则就返回 2 倍的 foo(n-1) 加上 foo(n-2)。我们先算出f(0)=0, f(1)=1,然后把f(5)变成由f(0),f(1)组成的表达式,就可以计算出答案。

二、算法题

1、不要二

题目解析:从题目里我们知道,如果(x1,y1)放了蛋糕,则满足 ( (x1-x2) * (x1-x2) + (y1-y2) * (y1-y2) ) == 4的(x2,y2)不能放蛋糕。
( (x1-x2) * (x1-x2) + (y1-y2) * (y1-y2) ) == 4看起来是一个无解的表达式。
但是我们可以进行加法表达式分解:1+3=4,3+1=4,2+2=4,0+4=4,4+0=4
仔细分析前三个表达式是不可能的,因为(x1-x2) * (x1-x2)表达式结果不能等于2或3。
也就是说( (x1-x2) * (x1-x2) 和(y1-y2) * (y1-y2) )两个表达式一个等于0,一个等于4。


仔细读理解了上面的题目解读,本题就非常简单了,使用vector<vector<int>>定义一个二维数组,resize开空间并初始化,每个位置初始化为1,表示当蛋糕,a[i][j]位置放蛋糕,则可以标记处a[i][j+2]和a[i+1][j]位置不能放蛋糕,遍历一遍二维数组,标记处不能放蛋糕的位置,统计也就统计出了当蛋糕的位置数。

#include <iostream>
#include<vector>
using namespace std;int main() {int W, H;while (cin >> W >> H) {int count = 0;vector<vector<int>> v;v.resize(W);for (auto& e : v) {e.resize(H, 1);}for (int i = 0; i < W; i++) {for (int j = 0; j < H; j++){if (v[i][j] == 1) {count++;if (i + 2 < W){v[i + 2][j] = 0;}if (j+2 <H ){v[i][j+2]=0;}}}}cout<<count;}}

2、把字符串转换成整数

题目解析:本题本质是模拟实现实现C库函数atoi,不过参数给的string对象。

首先,判断字符串是否为空,如果为空,就返回 0。然后,判断字符串的第一个字符是否是 ‘+’ 或 ‘-’,如果是,就记录下符号,并把字符串去掉第一个字符。接着,遍历字符串的每一个字符,如果是数字,就把它转换成整数,并累加到结果中;如果不是数字,就返回 0。最后,根据符号,返回正数或负数。

str[i] - ‘0’ 是一种把字符转换成整数的方法。它的原理是利用字符的 ASCII 码,也就是每个字符对应的一个数字。例如,字符 ‘0’ 的 ASCII 码是 48,字符 ‘1’ 的 ASCII 码是 49,以此类推,字符 ‘9’ 的 ASCII 码是 57。

class Solution {
public:int StrToInt(string str) {if(str.empty()){return 0;}int sum=0;int sym=1;if(str[0]=='-'){sym=-1;str[0]='0';}if(str[0]=='+'){str[0]='0';}for(int i=0;i<str.size();++i){if(str[i] < '0' || str[i] > '9'){sum = 0;break;}sum = sum *10 + str[i] - '0';}return sum*sym;}
};

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

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

相关文章

2023备战秋招Java面试八股文合集

Java就业大环境仍然根基稳定&#xff0c;市场上有很多机会&#xff0c;技术好的人前景就好&#xff0c;就看你有多大本事了。小编得到了一份很不错的资源&#xff0c;建议大家可以认真地来看看以下的资料&#xff0c;来提升一下自己的核心竞争力&#xff0c;在面试中轻松应对面…

HTTPS协议

文章目录 HTTPS协议1. HTTPS协议介绍2. 概念准备2.1 什么是"加密"2.2 为什么要加密2.3 常见的加密方式(1) 对称加密(2) 非对称加密 2.4 数据摘要 && 数据指纹(1) 应用场景 3. HTTPS理解链3.1 方案 1 - 只使用对称加密3.2 方案 2 - 只使用非对称加密3.3 方案 …

SeaArt.ai: 海艺AI绘画艺术图片模型创作平台

【产品介绍】 • 名称 SeaArt.ai • 具体描述 SeaArt.ai是一个基于人工智能技术的AI绘画工具&#xff0c;它可以根据你的描述或者关键词来生成符合你想象的图片。你可以选择不同的模式来创建不同类型的图片&#xff0c;比如人物、风景、建筑、神话、自…

投稿指南【NO.12_8】【极易投中】核心期刊投稿(组合机床与自动化加工技术)

近期有不少同学咨询投稿期刊的问题&#xff0c;大部分院校的研究生都有发学术论文的要求&#xff0c;少部分要求高的甚至需要SCI或者多篇核心期刊论文才可以毕业&#xff0c;但是核心期刊要求论文质量高且审稿周期长&#xff0c;所以本博客梳理一些计算机特别是人工智能相关的期…

Swift 新并发模型中 isolated 和 nonisolated 关键字的含义看这篇就懂了!

概览 在 Swift 新 async/await 并发模型中&#xff0c;我们可以利用 Actor 来避免并发同步时的数据竞争&#xff0c;并从语义上简化代码。 Actor 伴随着两个独特关键字&#xff1a;isolated 和 nonisolated&#xff0c;弄懂它们的含义、合理合规的使用它们是完美实现同步的必…

SpringMVC文件的上传下载JRebel的使用

目录 前言 一、JRebel的使用 1.IDea内安装插件 2.激活 3.离线使用 使用JRebel的优势 二、文件上传与下载 1 .导入pom依赖 2.配置文件上传解析器 3.数据表 4.配置文件 5.前端jsp页面 6.controller层 7.测试结果 前言 当涉及到Web应用程序的开发时&…

只依赖OPENCV的工作服安全帽检测YOLOV8S

工地安全帽工作服检测Y8S&#xff0c;采用YOLOV8S训练模型&#xff0c;然后使用OPENCV的DNN调用&#xff0c;彻底拜托PYTORCH依赖&#xff0c;可以在C,PYTHON,ANDROID上跑。附件是C生成的效果测试&#xff08;只需解压将图片或者视频放入VIDEOS文件夹&#xff0c;文件夹没图片或…

【UE 材质】制作飘动的旗帜

效果 步骤 1. 首先在建模软件中创建一个平面&#xff0c;注意分段数一定要多 2. 在UE中创建一个材质&#xff0c;这里命名为“Mat_Flag” 打开“Mat_Flag”&#xff0c;先将旗帜纹理连接到基础颜色 先选中导入的模型然后点击根据选中的模型预览材质 创建如下节点可以看到此时模…

如何让报表会说话?学会这一招就可以了

Smartbi电子表格软件进化到全新阶段&#xff0c;这轮更新最能吸引人的地方是什么呢&#xff1f;跟随小麦一起来感受下。 1、新增语音播放特性&#xff0c;让报表会说话 Smartbi电子表格软件最新上线超级实用的新特性——语音播报&#xff0c;即让报表自己开口说话~ 设想你打开…

matplotlib绘图

&#x1f433; 我正在和鲸社区参加“商业数据分析训练营活动” https://www.heywhale.com/home/competition/6487de6649463ee38dbaf58b &#xff0c;以下是我的学习笔记&#xff1a; 学习主题&#xff1a;matplotlib绘图 日期&#xff1a;2023.9.13 关键概念/知识点&#xf…

TikTok的生态封闭:如何应对新的商业格局

TikTok&#xff08;抖音国际版&#xff09;已经成为全球范围内最受欢迎的社交媒体平台之一&#xff0c;拥有数以亿计的活跃用户。然而&#xff0c;最近TikTok宣布了一项重大战略调整&#xff0c;即开始构建生态封闭&#xff08;walled garden&#xff09;模式。 这一变化将对出…

bit、bin 、mcs文件区别

FPGA里面的可执行文件都涉及到 *.bit&#xff0c; *.mcs&#xff0c; *.bin 和 *.elf。 bit文件 bit 文件一般用于JTAG在线进行调试的时候&#xff0c;是把bit文件是烧写到FPGA中进行在线调试。 bin文件 bin 文件是二进制文件&#xff0c;按顺序只包含原始字节流&#xff0c…

批量剪辑视频:AI智剪技巧全掌握

在视频剪辑的工作中&#xff0c;我们常常需要处理大量的视频文件。传统的剪辑方式既耗时又费力&#xff0c;而如今&#xff0c;随着人工智能技术的发展&#xff0c;AI智剪成为了一种省时省力的视频剪辑方法。下面&#xff0c;我们就来详细了解一下如何使用固乔智剪软件进行批量…

Linux下创建普通用户遇到的问题及解决办法

在Linux下只有root一个超级用户&#xff0c;但是可以创建多个普通用户的&#xff0c;具体的创建方法如下。 先切换到root用户&#xff0c;使用下面的命令创建用户名为user1(本文均以此用户名为例&#xff0c;注意后续键入指令时不要弄错了)的普通用户。 su root useradd user1 …

ARM的异常处理

概念 处理器在正常执行程序的过程中可能会遇到一些不正常的事件发生 这时处理器就要将当前的程序暂停下来转而去处理这个异常的事件 异常事件处理完成之后再返回到被异常打断的点继续执行程序 异常处理机制 不同的处理器对异常的处理的流程大体相似&#xff0c;但是不同的处理器…

linux 下 C++ 与三菱PLC 通过MC Qna3E 二进制 协议进行交互

西门子plc 有snap7库 进行交互&#xff0c;并且支持c 而且跨平台。但是三菱系列PLC并没有现成的开源项目&#xff0c;没办法只能自己拼接&#xff0c;我这里实现了MC 协议 Qna3E 帧&#xff0c;并使用二进制进行交互。 #pragma once#include <stdio.h> #include <std…

zTasker—简洁易用强大的定时热键一体自动化工具,效率倍增器

软件名称 zTasker 应用平台 PC Windows7及以上 一句简介 市面上定时类软件很多&#xff0c;但无一例外功能都很单一&#xff0c;要完成不同的任务&#xff0c;需要不同的软件 市面上的热键软件&#xff0c;要么功能少&#xff0c;要么像是AutoHotKey这样对于一般用户太专业…

分享篇:初识Canvas

目录 什么是Canvas&#xff1f; canvas的坐标 使用canvas的基本步骤​编辑 步骤&#xff1a; 1.需要一个canvas标签 代码演示&#xff08;方法1&#xff09; 代码演示&#xff08;方法2&#xff09; 2.需要获取 画笔 对象 &#xff08;获取 元素的 2D 上下文对象&#…

通过RSYNC在linux和windows间同步文件

通过RSYNC在linux和windows间同步文件 下载windows版本rsync下载后是一个zip的压缩包&#xff0c;直接解压就可使用配置windows到linux的秘钥拷贝公钥文件到linux服务器&#xff0c;实现免密配置同步命令结合windows计划任务实现定时同步文件 下载windows版本rsync 下载链接 h…

[kingbase运维之奇怪的现象]

#[kingbase运维之奇怪的现象] ##奇怪的现象 某银行数据中心应用反馈&#xff0c;业务接口日志记录了很多执行慢的SQL&#xff0c;出现的时间是随机的&#xff0c;单独在数据库客户端工具执行会很快返回结果。根据之前的经验推断是业务代码传入的参数类型与数据库表结构字段定义…