【c++笔试强训】(第八篇)

目录

孩⼦们的游戏(约瑟夫环)

题目解析

讲解算法原理

编写代码

⼤数加法(⾼精度加法)

题目解析

讲解算法原理

编写代码


孩⼦们的游戏(约瑟夫环)

题目解析

1.题目链接:孩子们的游戏(圆圈中最后剩下的数)_牛客题霸_牛客网

2.题目描述

描述

    每年六一儿童节,牛客都会准备一些小礼物和小游戏去看望孤儿院的孩子们。其中,有个游戏是这样的:首先,让 n 个小朋友们围成一个大圈,小朋友们的编号是0~n-1。然后,随机指定一个数 m ,让编号为0的小朋友开始报数。每次喊到 m-1 的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0... m-1报数....这样下去....直到剩下最后一个小朋友,可以不用表演,并且拿到牛客礼品,请你试着想下,哪个小朋友会得到这份礼品呢?

数据范围:1 \le n \le 50001≤n≤5000,1 \le m \le 100001≤m≤10000

要求:空间复杂度 O(1)O(1),时间复杂度 O(n)O(n)

示例1

输入:

5,3

复制返回值:

3

复制

示例2

输入:

2,3

复制返回值:

1

复制说明:

有2个小朋友编号为0,1,第一次报数报到3的是0号小朋友,0号小朋友出圈,1号小朋友得到礼物  

示例3

输入:

10,17

复制返回值:

2

讲解算法原理

解法:算法思路:
解法⼀:模拟。这⾥不多赘述,⽤数组或者链表模拟均可。但是数据量⼤的话会超时......
解法⼆:数学规律。通过画图,可以找到相邻两次删除坐标的规律。通过递推关系,求出剩下的最后⼀个数是哪个。讲解算法原理

编写代码

c++算法代码:

class Solution
{
public:int LastRemaining_Solution(int n, int m) {int f = 0;for(int i = 2; i <= n; i++) f = (f + m) % i;return f;}
};

java算法代码:

import java.util.*;
public class Solution
{public int LastRemaining_Solution (int n, int m) {int f = 0;for(int i = 2; i <= n; i++) f = (f + m) % i;return f;}
}

 

⼤数加法(⾼精度加法)

题目解析

1.题目链接:大数加法_牛客题霸_牛客网

2.题目描述

描述

以字符串的形式读入两个数字,编写一个函数计算它们的和,以字符串形式返回。

数据范围:s.length,t.length \le 100000s.length,t.length≤100000,字符串仅由'0'~‘9’构成

要求:时间复杂度 O(n)O(n)

示例1

输入:

"1","99"

复制返回值:

"100"

复制说明:

1+99=100       

示例2

输入:

"114514",""

复制返回值:

"114514"

讲解算法原理

解法:
算法思路:

模版类型的算法题,模拟加法列竖式运算的过程即可。

编写代码

c++算法代码:

class Solution
{
public:string solve(string s, string t) {string ret;int tmp = 0; // 进位 + 本次累加和int i = s.size() - 1, j = t.size() - 1;while(i >= 0 || j >= 0 || tmp) // 模拟加法 {if(i >= 0) tmp += s[i--] - '0';if(j >= 0) tmp += t[j--] - '0';ret += '0' + tmp % 10;tmp /= 10;}reverse(ret.begin(), ret.end()); // 别忘逆序 return ret;}
};

java算法代码:

import java.util.*;
public class Solution
{public String solve (String s, String t) {StringBuffer ret = new StringBuffer();int tmp = 0; // 标记进位 + 本次累加的结果 int i = s.length() - 1, j = t.length() - 1;while(i >= 0 || j >= 0 || tmp > 0) // 模拟加法 {if(i >= 0) tmp += s.charAt(i--) - '0';if(j >= 0) tmp += t.charAt(j--) - '0';ret.append((char)('0' + tmp % 10));tmp /= 10;}return ret.reverse().toString(); // 别忘逆序 }
}

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

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

相关文章

Comfy UI Docker 镜像构建

镜像的构建会需要科学上网&#xff0c;不会的人&#xff0c;最好的方式就是花钱购买境外服务器。 本文使用&#xff1a; Windwos 11 WSL &#xff08;Ubuntu22.04&#xff09; 进行镜像构建&#xff0c;使用 Clash 代理。 读者相同环境&#xff0c;实现代理需要两项配置 - 配…

PaoluGPT——千里挑一

开启题目&#xff1a; 点击“开始聊天”&#xff0c;发现已经跑路&#xff1a; 点击“查看聊天记录”&#xff0c;会发现一大堆聊天记录&#xff1a; 聊天记录在/list目录下 点两个具体的聊天记录&#xff0c;发现地址栏中URL发生变化&#xff0c;都是 /view?conversation_id…

conda创建 、查看、 激活、删除 python 虚拟环境

1、创建 python 虚拟环境 ,假设该环境命名为 “name”。 conda create -n name python3.11 2、查看 python 虚拟环境。 conda info -e 3、激活使用 python 虚拟环境。 conda activate name 4、删除 python 虚拟环境 conda remove -n name --all ​​ 助力快速掌握数据集…

从0开始的STM32学习之旅之定时器3:高级定时器

目录 重复计数器 输出比较 断路功能 输出比较模式 互补输出带死区控制 死区时间计算 PWM 输入模式 高级定时器的框图和通用定时器框图很类似&#xff0c;只是添加了其它的一些功能&#xff0c;如&#xff1a;重复计数 器、带死区控制的互补输出通道、断路输入等 可以认为…

基于SpringBoot的校园旧物回收小程序+LW示例参考

1.项目介绍 系统角色&#xff1a;管理员、普通用户功能模块&#xff1a;管理员&#xff08;商品管理、分类管理、用户管理、订单管理、院校管理等&#xff09;、普通用户&#xff08;发布商品、下架商品、购买商品、订单管理、消息模块、充值等&#xff09;技术栈&#xff1a;…

【微信好友暴涨秘籍】超简单技巧,3天增加100+好友!你也可以!

关注我们 | 免费试用 【微信好友暴涨秘籍】 超简单技巧&#xff0c;3天增加100好友&#xff01;你也可以&#xff01; 想要微信好友像雪球一样滚起来吗&#xff1f; 你是不是也在为微信好友太少而头疼&#xff0c;想加更多人但又不知道从哪里开始&#xff1f;是不是看到别人…

使用etl工具kettle的日常踩坑梳理之一、从mysql中导出数据

根据2024年11月份测试了kettle工具在9.3及以上版本已经没有内置连接大数据(如Hadoop)组件了。 建议安装9.2及以下的&#xff0c;我这里送上8.3.0版本的请用百度网盘下载链接&#xff1a;https://pan.baidu.com/s/1INRChuepogd332b81fC32w?pwd4ll9 提取码&#xff1a;4ll9 然…

Linux—进程学习-02

目录 Linux—进程学习—21.通过系统调用创建进程—fork1.1fork创建子进程1.2fork函数的返回值1.3利用fork实现多进程 2.有关cpu的常识了解3.进程状态3.1从操作系统层面了解进程状态3.1.1就绪和新建状态的理解3.1.2运行和阻塞状态的理解3.1.3挂起状态的理解挂起和阻塞的区别 3.1…

vxe-grid table 校验指定行单元格的字段,只校验某个列的字段

Vxe UI vue vxe-table 中校验表格行是非常简单的&#xff0c;只需要配置好校验规则&#xff0c;然后调用 validate 方法就可以自动完成校验&#xff0c;但是由于项目淡色特殊需求&#xff0c;在某个单元格的值修改后需要对另一个列的值就行校验&#xff0c;这个时候又不需要全部…

基于vue框架的的数字藏品第三方交易平台的设计与实现bh72e(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。

系统程序文件列表 项目功能&#xff1a;用户,藏品类型,藏品信息,商品订单 开题报告内容 基于Vue框架的数字藏品第三方交易平台的设计与实现 开题报告 一、研究背景与意义 随着区块链技术的迅猛发展和数字经济的崛起&#xff0c;数字藏品作为一种新兴的数字资产形式&#xf…

2024年的网络安全现状,太迷茫

前言 网络安全是指保护计算机网络和网络上的数据免受未经授权的访问、使用、泄露、破坏和干扰的一系列措施和技术。在当今数字化时代&#xff0c;网络安全变得尤为重要&#xff0c;因为我们越来越依赖互联网和计算机网络进行各种活动&#xff0c;如通信、数据传输、金融交易和…

微服务(三)

目录 1.微服务保护 1.1.服务保护方案 1.1.1.请求限流 1.1.2.线程隔离 1.1.3.服务熔断 1.2.Sentinel 1.2.1.介绍和安装 1.2.2.微服务整合 1.3.请求限流 1.4.线程隔离 1.4.1.OpenFeign整合Sentinel 1.4.2.配置线程隔离 1.5.服务熔断 1.5.1.编写降级逻辑 1.5.2.服务…

【数据结构】顺序表解析及实战运用

目录 线性表 顺序表 概念及结构 静态顺序表 动态顺序表 接口实现 初始化与销毁顺序表 检查容量&#xff08;扩容函数&#xff09; 打印顺序表 尾部插入和尾部删除 头部插入与头部删除 查找数据 指定下标位置插入 删除指定下标位置的数据 顺序表优缺点 优点 缺点…

二进制的bitset做法

题目 代码&#xff08;bitset的to_ulong()) 别的学校oj平台过不了&#xff0c;但是用他们后台数据推算&#xff0c;自测是能过的 string -> find bitset erase to_ulong() #include<bits/stdc.h> using namespace std;int main() {int n;cin >> n;getchar…

SSM药房管理系统—计算机毕业设计源码42430

目 录 摘要 1 绪论 1.1课题目的及意义 1.2研究背景 1.3 研究方法 1.4论文结构与章节安排 2 药房管理系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据流程 3.3.2 业务流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 系统用例分析 2.…

PC端微信多开

PC端一键微信多开&#xff0c;应用分身&#xff0c;方便快捷实现&#xff1b;WeChatStart.bat 第一种普通多开 echo off taskkill /F /FI "IMAGENAME eq WeChat.exe" taskkill /F /FI "IMAGENAME eq WeChatCopy.exe" start C:"\Program Files (x86)…

Java集合框架高频面试问题精粹(下篇)

书接上回&#xff0c;上一篇文章介绍了 Java 集合常见面试题全解&#xff08;上&#xff09;&#xff0c;反响不错&#xff0c;也有很多同学发表了自己的观点&#xff0c;这次又来了&#xff0c;这次是Java集合常见面试题总结&#xff08;下&#xff09;了&#xff0c;主要讲解…

vue3初始项目结构与分析

简介 时隔多年再次学习vue&#xff0c;单纯学习刚创立好的项目分析其结构与运作方式&#xff0c;掌握了基础才能在工作中延申 环境&#xff1a; nvm: v1.1.12 node.js: v18.20.5 npm: v10.8.2 vue: 3 visual studio code&#xff1a;v1.95.2 正文 下图抛开HelloVue.vue就是一…

【51单片机】LCD1602液晶显示屏

学习使用的开发板&#xff1a;STC89C52RC/LE52RC 编程软件&#xff1a;Keil5 烧录软件&#xff1a;stc-isp 开发板实图&#xff1a; 文章目录 LCD1602存储结构时序结构 编码 —— 显示字符、数字 LCD1602 LCD1602&#xff08;Liquid Crystal Display&#xff09;液晶显示屏是…

【C#设计模式(6)——适配器模式(Adapter Pattern)】

前言 C#设计模式(6)——适配器模式(Adapter Pattern) 适配器模式主要用于在不修改现有类的情况下&#xff0c;使本来不包含的类可以一起工作。 代码 //插头接口 public interface IPlug {void Charge(); } //插头适配 public class Adapter {public void ConverterCharge(){Co…