zoukankan      html  css  js  c++  java
  • 百练 2972 确定进制 解题报告

    思路:选择一个进制B,按照该进制将被乘数,乘数,乘积分别转换成10进制,然后判断等式是否相等。输出使得等式相等的最小的B即为所求。

    代码:

    #include<stdio.h>
    #include<string.h>
    
    long b2ten(char *x, int b)
    {
        int ret = 0;
        int len = strlen(x);
        for(int i = 0; i < len; i++)
        {
            if(x[i] - '0' >= b)
                return -1;
            ret *= b;
            ret += x[i] - '0';
        }
        return (long)ret;
    }
    int main()
    {
        int n, b;
        char p[8], q[8], r[8];
        long pval, qval, rval;
    
        scanf("%d", &n);
        while(n--)
        {
            scanf("%s%s%s", p, q ,r);
            for(b = 2; b <=16; b++)
            {
                pval = b2ten(p, b);
                qval = b2ten(q, b);
                rval = b2ten(r, b);
                if(pval == -1 || qval == -1 || rval == -1)
                    continue;
                if(pval * qval == rval)
                {
                    printf("%d
    ", b);
                    break;
                }
            }
            if(b == 17)
                printf("0
    ");
        }
        return 0;
    
    }
  • 相关阅读:
    python3.5+flask+mysql
    Python魔法师
    Redis
    Socket
    Python线程
    Python全栈之路--Django ORM详解
    基本算法
    Python_Select解析
    如何做好一名DBA【转】
    解决MySQL忘记root密码
  • 原文地址:https://www.cnblogs.com/la0bei/p/3603303.html
Copyright © 2011-2022 走看看