刷题日记——反转公约数、循环位移(厦门大学机试)

题目

在这里插入图片描述

分析

  • 将输入的数字看作字符串,然后将字符串转成真实值
  • 计算两个真实值,然后从1开始遍历公约数,每次发现一个更大的公约数就替换,直到找不到公约数

代码

#include <cstdio>
#include <map>
#include <string>
#include <cmath>
#include <vector>
#include <algorithm>
#include <stack>
using namespace std;long long str2num(char *num,int length){long long sum = 0;for(int i=0;i<length;i++){long long temp = num[i]-'0';for(int j=0;j<length-i-1;j++){temp *= 10;}sum += temp;}return sum;
}long long find_max(long long n1,long long n2){long long max = 1;for(long long i=2;i<=n1&&i<=n2;i++){if(n1%i==0&&n2%i==0){if(i>max){max = i;}}}return max;
}int main(){char num1[100];char num2[100];while(scanf("%s%s",num1,num2)!=EOF){string num_1 = num1;string num_2 = num2;//逆置for(int i=0;i<num_1.length()/2;i++){char temp = num1[i];num1[i]=num1[num_1.length()-1-i];num1[num_1.length()-1-i]=temp;}for(int i=0;i<num_2.length()/2;i++){char temp = num2[i];num2[i]=num2[num_2.length()-1-i];num2[num_2.length()-1-i]=temp;}long long n_1 = str2num(num1,num_1.length());long long n_2 = str2num(num2,num_2.length());printf("%lld\n",find_max(n_1,n_2));}return 0;
}

例题——循环位移

在这里插入图片描述

分析

  • 输入是字符串,首先判断两个字符串长度相等吗,不相等直接返回N
  • 如果相等,那么判断字符串是不是由另一个字符串循环移位得来的,我们只需要判断两个字符串相等的元素序号是不是相差相等的值,参照循环队列,需要注意的是,当某一个序号超过字符串长度时,需要对长度取余

代码

#include <cstdio>
#include <map>
#include <string>
#include <cmath>
#include <vector>
#include <algorithm>
#include <stack>
using namespace std;
char can_it(char *str1,char *str2, int length){for(int i=0;i<length;i++){if(str1[0]!=str2[i]){continue;}//找到i的编号,如果后面相应编号的全部相等,那么就匹配bool flag = true;for(int j=1;j<length;j++){if(str1[j]!=str2[(i+j)%length]){flag=false;break;}}if(flag == false){continue;}else{return 'Y';}}return 'N';
}int main(){char num1[100];char num2[100];while(scanf("%s%s",num1,num2)!=EOF){string num_1 = num1;string num_2 = num2;if(num_1.length()!=num_2.length()){printf("N\n");}else{printf("%c\n",can_it(num1,num2,num_1.length()));}}return 0;
}

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

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

相关文章

Spring Boot整合canal实现数据一致性解决方案解析-部署+实战

&#x1f3f7;️个人主页&#xff1a;牵着猫散步的鼠鼠 &#x1f3f7;️系列专栏&#xff1a;Java全栈-专栏 &#x1f3f7;️个人学习笔记&#xff0c;若有缺误&#xff0c;欢迎评论区指正 目录 1.前言 2.canal部署安装 3.Spring Boot整合canal 3.1数据库与缓存一致性问题…

内存操作函数

memcpy mem--memory--内存 指向计算机内存 cpy-copy-拷贝 也就是内存拷贝 针对内存的函数 void* memcpy(void * destination,const void * source,size_t num) 把source的空间 复制到 destination的部分 长度是num 如果source 和 dest 的部分有重叠,会复制的结果是未定义的(建…

memcpy函数及其模拟实现

一、 函数原型 void *memcpy(void *destin, void *source, size_t n);二、参数 destin-- 指向用于存储复制内容的目标数组&#xff0c;类型强制转换为 void* 指针。 source-- 指向要复制的数据源&#xff0c;类型强制转换为 void* 指针。 n-- 要被复制的字节数。 三、返回…

软考高级:信息系统开发方法2(形式化方法、统计过程方法等)概念和例题

作者&#xff1a;明明如月学长&#xff0c; CSDN 博客专家&#xff0c;大厂高级 Java 工程师&#xff0c;《性能优化方法论》作者、《解锁大厂思维&#xff1a;剖析《阿里巴巴Java开发手册》》、《再学经典&#xff1a;《Effective Java》独家解析》专栏作者。 热门文章推荐&am…

Prometheus 安装部署

文章目录 1.部署Prometheus1.1.修改配置文件1.2.配置告警规则1.3.运行Docker 2.部署Alertmanager2.1.修改配置文件2.2.Prometheus监控配置2.3.运行Docker 3.部署Grafana3.1.运行Docker3.2. 配置数据源3.3. 配置dashboard 开源中间件 # Prometheushttps://iothub.org.cn/docs/m…

linux paddle For C++环境搭建

paddle介绍 Paddle是类似tesseract的文字识别ocr。因为tesseract-ocr的中文识别效果不好。因此才准备安装Paddle。Paddle最方便的安装方式的使用Python的包管理安装。pip3 install paddlepaddle。但我使用了一下感觉还是用C更加方便&#xff0c;QT OpenCV Paddle应当还不错。…

哈密顿算子的计算公式及一些常用公式总结

目录 哈密顿算子的定义式如下&#xff1a; 梯度定义&#xff1a; 散度定义&#xff1a; 旋度定义&#xff1a; 常用的一些公式&#xff1a; 注意文中字母上面没有→的是标量&#xff0c;有→的都表示矢量 哈密顿算子的定义式如下&#xff1a; 快速了解哈密顿算符&#xff…

华为组网:核心交换机旁挂防火墙,基于ACL重定向配置实验

如图所示&#xff0c;由于业务需要&#xff0c;用户有访问Internet的需求。 用户通过接入层交换机SwitchB和核心层交换机SwitchA以及接入网关Router与Internet进行通信。为了保证数据和网络的安全性&#xff0c;用户希望保证Internet到服务器全部流量的安全性&#xff0c;配置重…

基于LIO-SAM 算法的三维激光SLAM 建图

运行环境 Linux&#xff1a;Ubuntu18.04ros&#xff1a;MelodicCeres Solver 2.0.0&#xff08;Ubuntu18.04安装Ceres&#xff09;PCL 1.8.1&#xff08;Ubuntu系统的PCL、Eigen卸载和安装&#xff09;gtsam-4.0.0-alpha2 或者 4.0.2 1 背景介绍 在自动驾驶的感知方案中&…

Linux发展史目录结构Vim编辑器

Linux入门 一、Linux的发展史二、Linux的目录结构2.1 Linux系统中一切皆文件2.2 Linux中几个重要的目录 三、VIM编辑器3.1 用户名主机名 /xxx的含义3.2 一般模式3.3 编辑模式和指令模式3.4 三种模式之间的转换 一、Linux的发展史 上面俩兄弟用C语言写出了Unix操作系统(右边那个…

C++学习随笔(4)——类和对象的初探

本章我们来初步学习一下C中的类和对象&#xff01; 目录 1.类的引入 2.类的定义 类的两种定义方式&#xff1a; 3.类的访问限定符及封装 3.1 访问限定符 3.2 封装 4.类的作用域 5.类的实例化 6.类对象模型 6.1 如何计算类对象的大小 6.2 类对象的存储方式猜测 6.3 …

HM v.16.22 顺序读源码day2---TAppEncTop.cpp

文章目录 TAppEncTop.cpp引言Void TAppEncTop::encode()1.打开YUV文件并初始化编码器和缓冲区2.循环编码3.收尾工作&#xff1a;Debug和释放资源 执行流程实现细节1.Class TAppEncTop;2.Void TAppEncTop::xInitLibCfg()3.Void TAppEncTop::xCreateLib();4.Void TAppEncTop::xIn…