zoukankan      html  css  js  c++  java
  • 1010

    #include <iostream>
    #include <cctype>
    #include <algorithm>
    #include <cmath>
    using namespace std;
    long long convert(string n, long long radix) {
        long long sum = 0;
        int index = 0, temp = 0;
        for (auto it = n.rbegin(); it != n.rend(); it++) {
            temp = isdigit(*it) ? *it - '0' : *it - 'a' + 10;// - 'a' + 10 transform letter to 10radix number;-'0' transform string to number;(a-z represent the decimal numbers 10-35.)
            sum += temp * pow(radix, index++);
        }
        return sum;
    }
    long long find_radix(string n, long long num) {
        char it = *max_element(n.begin(), n.end());
        long long low = (isdigit(it) ? it - '0' : it - 'a' + 10) + 1;
        long long high = max(num, low);
        while (low <= high) {
            long long mid = (low + high) / 2;
            long long t = convert(n, mid);
            if (t < 0 || t > num) //if t is negative number,that mean t out of long long boundary.
                high = mid - 1;
            else if (t == num) return mid;
            else low = mid + 1;
        }
        return -1;
    }
    int main() {
        string n1, n2;
        long long tag = 0, radix = 0, result_radix;
        cin >> n1 >> n2 >> tag >> radix;
        result_radix = tag == 1 ? find_radix(n2, convert(n1, radix)) : find_radix(n1, convert(n2, radix));
        if (result_radix != -1) {
            printf("%lld", result_radix);
        }
        else {
            printf("Impossible");
        }
        return 0;
    }
  • 相关阅读:
    今天做了个小项目
    了解类与对象
    装机时键盘选择失误?教你修改kali Linux键盘到美式。
    一些模塊的用法
    你也是全员模块?
    金额保留2位小数 xx.00
    maven项目统一管理版本
    启动项目报错——找不到或无法加载主类 io.vertx.core.Launcher
    以jar包方式启动
    支付业务接口功能(二)
  • 原文地址:https://www.cnblogs.com/masayoshi/p/10848297.html
Copyright © 2011-2022 走看看