笨拙的手指

笨拙的手指

问题描述

问题描述

奶牛贝茜正在学习如何在不同进制之间转换数字。
但是她总是犯错误,因为她无法轻易的用两个前蹄握住笔。
每当贝茜将数字转换为一个新的进制并写下结果时,她总是将其中的某一位数字写错。
例如,如果她将数字14转换为二进制数,那么正确的结果应为 1110,但她可能会写下 0110或 1111。
贝茜不会额外添加或删除数字,但是可能会由于写错数字的原因,写下包含前导 0 的数字。
给定贝茜将数字 N转换为二进制数字以及三进制数字的结果,请确定 N
的正确初始值(十进制表示)。

输入格式

第一行包含 N的二进制表示,其中一位是错误的。
第二行包含 N的三进制表示,其中一位是错误的。

输出格式

输出正确的 N的值。

数据范围

0≤N≤109,且存在唯一解。

输入样例

1010
212

输出样例

14

样例解释

14在二进制下的正确表示为 1110,在三进制下的正确表示为 112。

问题分析

通过题意,可以知道只需要改变二进制中的一个数字和三进制中的一个数字,计算出十进制的数值,通过对比就可以得到正确结果。

  1. 通过秦九韶算法计算出二进制和三进制对应的十进制数值
  2. 通过unordered_set 无序集合来存储计算出来的十进制数值,它使用哈希表实现
  3. 通过unordered_set(无序集合)的count(x)成员函数,它用于检查集合中是否存在特定的元素 x

代码

#include<bits/stdc++.h>
using namespace std;
//秦九韶算法计算十进制数值
int get(string s,int b)
{
    int res=0;
    //遍历字符串s中的每个字符
    for(auto c:s)
        res=res*b+c-'0'; //-'0'的目的是将字符类型结果转化为数值型
    return res;
}
int main()
{
    string a,b;
    cin>>a>>b;
    unordered_set<int> S;  //无序集合S
    for(auto& c:a)
    {
        c^=1; //将字符串a中的c位取反
        S.insert(get(a,2)); //将计算出的十进制结果存储到无序集合S中
        c^=1; //将字符串a中的c位返回到初始的值
    }
    for(auto& c:b)
    {
        char t=c;
        for(int i=0;i<3;i++)
        //i+'0'目的是将整数i转换为对应的字符
            if(i+'0'!=t)
            {
                c=i+'0';
                int x=get(b,3);
                if(S.count(x))
                {
                    cout<<x<<endl;
                    return 0;
                }
            }
        c=t; //这里也是还原c位置的数值
    }
    return 0;
}

相关推荐

  1. 笨拙手指

    2024-05-03 06:40:04       31 阅读
  2. 笨蛋学C++ 之 CMake使用

    2024-05-03 06:40:04       28 阅读
  3. 简单手指控制机械臂

    2024-05-03 06:40:04       65 阅读
  4. SQL 优化手段

    2024-05-03 06:40:04       43 阅读
  5. vue优化手段

    2024-05-03 06:40:04       32 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-03 06:40:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-03 06:40:04       106 阅读
  3. 在Django里面运行非项目文件

    2024-05-03 06:40:04       87 阅读
  4. Python语言-面向对象

    2024-05-03 06:40:04       96 阅读

热门阅读

  1. hadoop学习---sqoop学习记录

    2024-05-03 06:40:04       39 阅读
  2. MYSQL之锁

    2024-05-03 06:40:04       22 阅读
  3. vue中引入字体资源遇到的问题

    2024-05-03 06:40:04       29 阅读
  4. vue3+vite项目中,图片显示为src=“[object Object]“

    2024-05-03 06:40:04       28 阅读
  5. 、、、、、

    2024-05-03 06:40:04       18 阅读
  6. Web网页设计基础知识--表格

    2024-05-03 06:40:04       26 阅读
  7. Android by viewModels()

    2024-05-03 06:40:04       29 阅读
  8. ubuntu 卸载docker

    2024-05-03 06:40:04       26 阅读
  9. 前端框架比较,vue,react,angular该如何选择?

    2024-05-03 06:40:04       35 阅读
  10. UNIXu

    2024-05-03 06:40:04       34 阅读
  11. 读取文件例题总结 python

    2024-05-03 06:40:04       28 阅读
  12. Sharding-JDBC如何实现读写分离

    2024-05-03 06:40:04       31 阅读
  13. 数据结构(三)------栈

    2024-05-03 06:40:04       32 阅读
  14. 【设计模式】17、iterator 迭代器模式

    2024-05-03 06:40:04       29 阅读