当前位置: 首页 > news >正文

PTA甲级-1010 Radix c++

文章目录

      • Input Specification:
      • Output Specification:
      • Sample Input 1:
      • Sample Output 1:
      • Sample Input 2:
      • Sample Output 2:
  • 一、题干大意![在这里插入图片描述](https://img-blog.csdnimg.cn/68d84d3ea86e4aaab002152ae8472e05.png#pic_center)
  • 二、题解要点
  • 三、具体实现
  • 总结

Given a pair of positive integers, for example, 6 and 110, can this equation 6 = 110 be true? The answer is yes, if 6 is a decimal number and 110 is a binary number.

Now for any pair of positive integers N1 and N2, your task is to find the radix of one number while that of the other is given.

Input Specification:

Each input file contains one test case. Each case occupies a line which contains 4 positive integers:

N1 N2 tag radix

Here N1 and N2 each has no more than 10 digits. A digit is less than its radix and is chosen from the set { 0-9, a-z } where 0-9 represent the decimal numbers 0-9, and a-z represent the decimal numbers 10-35. The last number radix is the radix of N1 if tag is 1, or of N2 if tag is 2.

Output Specification:

For each test case, print in one line the radix of the other number so that the equation N1 = N2 is true. If the equation is impossible, print Impossible. If the solution is not unique, output the smallest possible radix.

Sample Input 1:

6 110 1 10

Sample Output 1:

2

Sample Input 2:

1 ab 1 2

Sample Output 2:

Impossible

一、题干大意在这里插入图片描述

给出两个字符串和其中一个字符串的进制,求出另一个字符串的进制,使两者的值相等。最后输出求出的进制,如果不存在这种进制就输出 “Impossible”

二、题解要点

  • 两个函数,一个用来进行进制转化,也就是把任意进制的字符串转化为十进制的数。另一个用二分法求出进制。
  • 一定要注意:在二分法求进制的过程中,求出的进制是有可能上溢的,如果不解决就只能拿15分。

三、具体实现

/**
*@Author:hhzheng
*@Date:2023/2/6  10:58
*@Filename:PAT甲级1010 Radix
*/#include<iostream>
#include <string>
#include <cmath>
#include <cctype>
#include <algorithm>
using namespace std;/*** 输入一个字符串、一个数(表示进制) 将这个字符串转换为该十进制的数* @param n* @param radix* @return*/
long long turnDecimal(string n, long long radix) {long long theResult = 0;for (int i = n.size() - 1; i >= 0; --i) {if (n.at(i) >= '0' && n.at(i) <= '9') {theResult += (n.at(i) - '0') * pow(radix, n.size() - i - 1);}if (n.at(i) >= 'a' && n.at(i) <= 'z') {theResult += (n.at(i) - 'a' + 10) * pow(radix, n.size() - i - 1);}}return theResult;
}/*** 用二分法求出正确的进制 如果不存在返回-1* @param n* @param s* @return*/
long long getRadix(long long n, string s) {char it = *max_element(s.begin(), s.end());long long low = (isdigit(it) ? it - '0': it - 'a' + 10) + 1; //找到可能的最小的进制long long high = max(n, low); //找到最大的可能的进制,比如说 1 1 1 10 这种情况就不能high = n了while (low <= high) {long long mid = (low + high) / 2;long long temp = turnDecimal(s, mid);if (temp < 0 ||temp > n) {  //一定要有temp < 0,因为在进制转化的时候有可能会上溢high = mid - 1;} else if (temp == n) {return mid;} else {low = mid + 1;}}return -1;
}int main() {string n1, n2;long long number1, number2, radix,answerRadix;int tag;cin >> n1 >> n2 >> tag >> radix;if (tag == 1) {number1 = turnDecimal(n1, radix);answerRadix = getRadix(number1,n2);} else {number2 = turnDecimal(n2, radix);answerRadix = getRadix(number2,n1);}if (answerRadix != -1){cout << answerRadix;}else{cout <<"Impossible";}return 0;
}

总结

全网的写法思路基本差不多,决定成败的就是在如何这个进制的上溢。

相关文章:

PTA甲级-1010 Radix c++

文章目录Input Specification:Output Specification:Sample Input 1:Sample Output 1:Sample Input 2:Sample Output 2:一、题干大意![在这里插入图片描述](https://img-blog.csdnimg.cn/68d84d3ea86e4aaab002152ae8472e05.png#pic_center)二、题解要点三、具体实现总结Given a…...

【项目重构】第1次思考

回顾与反思 2022年~至今&#xff08;2023年2月&#xff09;&#xff0c;一共重构了2个项目。 第1个项目在重构的时候&#xff0c;总是想着把别人的代码copy过来&#xff0c;改一改&#xff0c;这就算重构好了。这样做效率太低&#xff0c;原因是前人写的代码不一定有很多注释…...

Java:SpringMVC的使用(2)

目录第十二章 REST风格CRUD练习12.1 搭建环境12.2 实现功能思路第十三章 SpringMVC消息转换器13.1 消息转换器概述13.2 使用消息转换器处理请求报文(1) 使用RequestBody获取请求体(2) 使用HttpEntity\<T>获取请求体及请求头13.3 使用消息转换器处理响应报文(1) 使用Respo…...

Elasticsearch7.8.0版本进阶——分布式集群(应对故障)

目录一、Elasticsearch集群的安装1.1、Elasticsearch集群的安装&#xff08;win10环境&#xff09;1.2、Elasticsearch集群的安装&#xff08;linux环境&#xff09;二、应对故障&#xff08;win10环境集群演示&#xff09;2.1、启动集群&#xff08;三个节点&#xff09;2.2、…...

【LeetCode】每日一题(2)

目录 题目&#xff1a;1138. 字母板上的路径 - 力扣&#xff08;Leetcode&#xff09; 题目的接口&#xff1a; 解题思路&#xff1a; 代码&#xff1a; 过啦&#xff01;&#xff01;&#xff01; 写在最后&#xff1a; 题目&#xff1a;1138. 字母板上的路径 - 力扣&am…...

软件设计师教程(六)计算机系统知识-操作系统知识

软件设计师教程 软件设计师教程&#xff08;一&#xff09;计算机系统知识-计算机系统基础知识 软件设计师教程&#xff08;二&#xff09;计算机系统知识-计算机体系结构 软件设计师教程&#xff08;三&#xff09;计算机系统知识-计算机体系结构 软件设计师教程&#xff08;…...

Zookeeper下载安装与集群搭建

Zookeeper下载安装与集群搭建1.下载安装1.1 下载安装1.2 配置启动2.集群搭建2.1 搭建要求2.2 准备工作2.3 配置集群2.4 启动集群2.5 模拟集群异常1.下载安装 1.1 下载安装 1、环境准备 ZooKeeper服务器是用Java创建的&#xff0c;它运行在JVM之上。需要安装JDK 7或更高版本。…...

Filter防火墙(8)

实验目的 1、了解个人防火墙的基本工作原理&#xff1b; 2、掌握Filter防火墙的配置。 预备知识防火墙 防火墙&#xff08;Firewall&#xff09;是一项协助确保信息安全的设备&#xff0c;会依照特定的规则&#xff0c;允许或是限制传输的数据通过。防火墙可以是一台专属的硬…...

Spring事务的传播级别——包你一文通

文章目录一、简单说明二、具体案例描述2.1.PROPAGATION_REQUIRED2.2.PROPAGATION_REQUIRED_NEW2.3.PROPAGATION_SUPPORTS2.4.PROPAGATION_NOT_SUPPORTED2.5.PROPAGATION_MANDATORY2.6.PROPAGATION_NEVER2.7.PROPAGATION_NESTED三、总结3.1、PROPAGATION_REQUIRED3.2、PROPAGATI…...

C语言(C预编译指令)

目录 1.undef 2.条件编译#ifdef,#else和#endif 3.#ifndef 4.#if和#elif 5.预定义宏 6.#line和#error 7.#pragma 1.undef #undef指令用于取消已定义的#define指令 #define LIMIT 400 #undef LIMIT 如果想使用一个名称但又不确定之前是否已经用过&#xff0c;为了安全起…...

JMeter 接口测试/并发测试/性能测试

Jmter工具设计之初是用于做性能测试的&#xff0c;它在实现对各种接口的调用方面已经做的比较成熟&#xff0c;因此&#xff0c;本次直接使用Jmeter工具来完成对Http接口的测试。因为再做接口测试时可以设置线程组&#xff0c;所以也可做接口性能测试。本篇使用JMeter完成了一个…...

大家心心念念的RocketMQ5.x入门手册来喽

1、前言 为了更好的拥抱云原生&#xff0c;RocketMQ5.x架构进行了大的重构&#xff0c;提出了存储与计算分离的设计架构&#xff0c;架构设计图如下所示&#xff1a; RocketMQ5.x提供了一套非常建议的消息发送、消费API&#xff0c;并统一放在Apache顶级开源项目rocketmq-clie…...

(考研湖科大教书匠计算机网络)第四章网络层-第三节1:IPv4地址概述

获取pdf&#xff1a;密码7281专栏目录首页&#xff1a;【专栏必读】考研湖科大教书匠计算机网络笔记导航 文章目录一&#xff1a;IPv4地址概述二&#xff1a;IPv4地址表示方法&#xff08;1&#xff09;概述&#xff08;2&#xff09;8位无符号二进制数转十进制正整数&#xff…...

B站Python与OpenCV人脸识别项目超详细记录(对图片、视频、摄像头人脸的检测)

课程来源&#xff1a;一天搞定人脸识别项目&#xff01;学不会up直接下跪&#xff01;&#xff08;pythonopencv&#xff09;_哔哩哔哩_bilibili 图片来源&#xff1a;感谢王鹤棣先生友情出镜~ 环境配置详见&#xff1a; 在conda虚拟环境中安装OpenCv并在pycharm中使用_cond…...

【Node.js实战】一文带你开发博客项目之Koa2重构(实现session、开发路由、联调、日志)

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;也会涉及到服务端 &#x1f4c3;个人状态&#xff1a; 在校大学生一枚&#xff0c;已拿多个前端 offer&#xff08;秋招&#xff09; &#x1f680;未…...

第一部分:简单句——第二章:简单句的补充

简单句的核心构成&#xff1a;一主一谓 主语/宾语/表语 可以变成名词/代词/doing/to do 谓语动词有四种核心变化&#xff1a;三态 一否 时态语态情态否定 简单句的核心&#xff1a;将简单句给写对 简单句的补充&#xff1a;将简单句给写的更好、更充分 简单句的补充 1、限定…...

Spring Security简介

前面我们已经完成了传智健康后台管理系统的部分功能&#xff0c;例如检查项管理、检查组管理、套餐管理、预 约设置等。接下来我们需要思考2个问题&#xff1a; 问题1&#xff1a;在生产环境下我们如果不登录后台系统就可以完成这些功能操作吗&#xff1f; 答案显然是否定的&am…...

Hadoop安装 --- 简易安装Hadoop

目录 1、使用xftp工具 在opt目录下创建install和soft文件 2、使用xftp工具 将压缩包上传到install文件 3、编写shell脚本 3.1、创建目录来放shell脚本 3.2、创建autoinsatll.sh文件并修改权限 3.3、编写autoinsatll.sh 文件 刷新资源 运行文件 格式化 启动所有进程 Ha…...

俞军产品方法论,消化吸收,要点整理

一、总体概括二、产品经理、价值、用户模型、交易模型三、价值、产品和企业的价值生存游戏的常见要点&#xff1a;企业做产品的4方面产出&#xff1a;四、决策五、俞军产品方法论&#xff0c;认知迭代史1&#xff09;俞军12条产品军规2)产品经理职级的背后影响因素&#xff1a;…...

spring注解的开端(@Component替代bean标签的使用)

目录 一、介绍 1.什么是注解开发&#xff1f; 2.Spring注解的版本 3.基于spring注解的应用 4. Component的细分注解 5.相关注解 二、简单例子讲解 1.类打注解 2.扫描注解放入工厂 3.总工厂取注解调用 4.运行结果 总结&#xff1a; 一、介绍 1.什么是注解开发&…...

Matlab傅里叶谱方法求解一维波动方程

傅里叶谱方法求解基本偏微分方程—一维波动方程 一维波动方程 对于一根两端固定、没有受到任何外力的弦, 若只研究其中的一段, 在不太长的时间 里, 固定端来不及对这段弦产生影响, 则可以认为固定端是不存在的, 弦的长度为无限大。 这种无界 (−∞<x<∞)(-\infty<x&…...

py3中 collections.Counter()函数典型例题

文章目录py3中 collections 的常用STL**Counter()** 函数**defaultdict()** 函数**deque()** 函数**orderedDict()** 函数&#xff08;缺例题&#xff09;小结py3中 collections 的常用STL 对于这个工具包非常好用&#xff0c;尤其是其中的 Counter() 函数 使用次数颇为频繁&a…...

Linux部署达梦数据库超详细教程

陈老老老板&#x1f9b8;&#x1f468;‍&#x1f4bb;本文专栏&#xff1a;国产数据库-达梦数据库&#x1f468;‍&#x1f4bb;本文简述&#xff1a;本文讲一下达梦数据库的下载与安装教程&#xff08;Linux版&#xff09;&#xff0c;超级详细。&#x1f468;‍&#x1f4bb…...

ctfshow 每周大挑战 极限命令执行

《简单的命令执行题目》 这里感叹一下&#xff0c;g4佬是真好厉害&#xff0c;这次题目十分的难&#xff0c;嗯&#xff0c;对我这种菜鸡来说是这样的&#xff0c;想了一天&#xff0c;最后结束了&#xff0c;也还是没有想明白第五题的解法&#xff0c;我真是fw&#xff0c;到最…...

使用vue3,vite,less,flask,python从零开始学习硅谷外卖(16-40集)

严正声明&#xff01; 重要的事情说一遍&#xff0c;本文章仅供分享&#xff0c;文章和代码都是开源的&#xff0c;严禁以此牟利&#xff0c;严禁侵犯尚硅谷原作视频的任何权益&#xff0c;我知道学习编程的人各种各样的心思都有&#xff0c;但这不是你对开源社区侵权的理由&am…...

坚持就是胜利

很多朋友&#xff0c;可能坚持了多年的同等学力申硕考试&#xff0c;依然没有通过。如果你感到困惑&#xff0c;感到迷茫&#xff0c;要坚信&#xff1a;坚持就能胜利。有很多人跟你一样&#xff0c;一直坚持在路上&#xff0c;没有停止脚步。 生活没有你想象的那么好&#xff…...

代码中出现转置 pose (c2w,外参矩阵) 或者转置 intrinsic (内参)矩阵的原因

在代码中见到 pose&#xff08;c2w&#xff09;&#xff0c;intrinsic 矩阵的转置&#xff0c;觉得比较奇怪。 后来想了一下为什么。下面解释一下&#xff1a; 用 c2w 矩阵举例子。理论上&#xff0c;一个 c2w 左乘上 一个相机坐标系下的点 P的坐标&#xff0c;能够得到该点在…...

2023 年腾讯云服务器配置价格表出炉(2核2G/2核4G/4核8G/8核16G、16核32G)

腾讯云轻量应用服务器为轻量级的云服务器&#xff0c;使用门槛低&#xff0c;按套餐形式购买&#xff0c;轻量应用服务器套餐自带的公网带宽较大&#xff0c;4M、6M、7M、10M、14M及20M套餐可选&#xff0c;如果是云服务器CVM这个带宽价格就要贵很多了。 1、轻量应用服务器优惠…...

相机出图画面一半清晰,一半模糊的原因是什么?

1、问题背景&#xff1a;在做项目的过程中&#xff0c;有遇到过几次&#xff0c;出图后画面是一半清晰&#xff0c;一半模糊的现象&#xff0c;再重新对焦也是一样。但换了个镜头后就好了&#xff0c;这应该是镜头的质量问题&#xff0c;但导致镜头出现这种问题的具体原因是什么…...

Rust学习入门--【4】Rust 输出到命令行

Rust 语言中的打印“函数” 学习新的编程语言时&#xff0c;大家都喜欢打印“Hello World”。 在Rust中怎样将字符串打印出来呢&#xff1f; Rust 输出文字的方式主要有两种&#xff1a;println!() 和 print!()。 “函数”差异说明&#xff1a; 这两个"函数"都是向…...

企业网站一般包括哪些内容/长沙seo优化排名推广

上一篇文章讲到了加载三种命令行客户端《Flink内核源码解析系列(四):加载解析命令的命令行客户端》 这篇文章来讲解析用户的命令,并执行。 org.apache.flink.client.cli.CliFrontend#main: try {final CliFrontend cli = new CliFrontend(configuration, customCommandLi…...

网络营销平台搭建方案网站/网页广告调词平台多少钱

1. 概述 最近开始学习自定义View&#xff0c;看到现在公司项目上的一个动画效果&#xff0c;顿时想到其实可以自己画&#xff0c;于是就开始着手优&#xff08;zhuang&#xff09;化&#xff08;bi&#xff09;这个动画。 动画如下&#xff1a; 其实很简单对不对&#xff0c;但…...

贵阳设计网站建设/北京seo排名外包

方法一、 微服务项目的开发过程中&#xff0c;工程会非常多&#xff0c;经常要启动很多个服务&#xff0c;才能完成一项测试。启动的多了&#xff0c;容易开发者带来错乱的感觉&#xff0c;很不方便管理。在idea作为开发工具时&#xff0c;推荐一个很好用的功能--Run Dashboar…...

国外网站 工信部备案/免费源码下载网站

问题&#xff1a;想要自己构建爬虫和自动化表格&#xff0c;进行数据收集和分析&#xff0c;有哪些好的渠道学习&#xff1f;1.很多人一上来就要爬虫&#xff0c;其实没有弄明白要用爬虫做什么&#xff0c;最后学完了却用不上。大多数人其实是不需要去学习爬虫的&#xff0c;因…...

寻求南宁网站建设人员/专业seo优化推广

怀旧是一种什么滋味 怀旧是一种什么滋味&#xff0c;好像有人在你心上攥了一下。 感谢这个时代将我们记录默默保存 感谢某技术博客平台竟然还能保存自己10年前的博客文章 早起的鸟儿有虫吃 今天需要在某网站下载个资料&#xff0c;如今是知识付费时代哪个网站不搞个VIP服务都…...

沂源放心企业网站建设方案报价/百度pc端网页版

题目在这里啊 A.最长上升子序列&#xff0c;范围很小所以写了简单的O(n^2)算法 #include <iostream>#define rep(i, j, k) for(int i j;i < k;i )#define rev(i, j, k) for(int i j;i > k;i --)using namespace std;typedef long long ll;int n, m, a[1111], f[1…...