zoukankan      html  css  js  c++  java
  • 【每天一道PAT】1010 Radix

    思路

    直接暴力枚举,有一个测试点会超时。有两个错误一直没找到,应该是有模糊的边界条件没考虑到。
    超时解决办法:二分查找

    #include <cstdio>
    #include <string.h>
    #include <math.h>
    #include <vector>
    using namespace std;
    vector<int> num1, num2;
    int main()
    {
        char num_1[11] = {0};//数字一
        char num_2[11] = {0};//数字二
        int r = 1;
        long long num=0,judge=0;
        int tag, radis;//标签,基数
        scanf("%s %s %d %d", num_1, num_2,&tag,&radis);
        //字符串转换数字一
        for (int i = 0; i < strlen(num_1); ++i)
        {
            if(num_1[i]>=97) num1.push_back(num_1[i]-87);
            else num1.push_back(num_1[i]- '0');
        }
        //字符串转换数字二
        for (int i = 0; i < strlen(num_2); ++i)
        {
            if(num_2[i]>=97) num2.push_back(num_2[i]-87);
            else num2.push_back(num_2[i]- '0');
        }
    
        if(tag ==2)
        {
            vector<int> temp;
            temp = num1;
            num1 = num2;
            num2 = temp;
        }
    
        int len = num1.size();
        for (int j = 0; j < len; ++j)
        {
            num+=num1[j]*pow(radis,len-j-1);
        }
        len = num2.size();
        while(judge<num&&judge>=0)
        {
            judge =0;
            for (int j = 0; j < len; ++j)
            {
                judge+=num2[j]*pow(r,len-j-1);
            }
                r++;
        }
    
        if(judge ==num)
        {
            if(num1.size()==1&&num2.size()==1)
                printf("%d",num1[0]+1);
            else
                printf("%d", r-1);
        }
        else printf("Impossible");
    }
    
    
    
    

  • 相关阅读:
    数据库第三范式的思考
    channel通道例子
    go 测试代码性能实例
    go 新建項目引入gin失敗
    go 创建切片slice的四种方法
    Hibernate查询操作
    shell 分割训练数据
    hadoop streaming 分桶到不同的part
    C语言调用另一个文件的方法
    在springboot中使用jdbcTemplate(3)
  • 原文地址:https://www.cnblogs.com/xinyuLee404/p/12664705.html
Copyright © 2011-2022 走看看