zoukankan      html  css  js  c++  java
  • 201/3/20确定进制

    题目描述:
    6 × 9 = 42 对于十进制来说是错误的,但是对于 13 进制来说是正确的。即,6(13) × 9(13) = 42(13), 而 42(13) = 4 × 13 + 2 = 54(10)。

    你的任务是写一段程序读入三个整数 p, q 和 r,然后确定一个进制 B (2 <= B <= 16) 使得 p × q = r。如果 B 有很多选择,输出最小的一个。

    例如:当 p = 11, q = 11, r = 121 时,则有 11(3) × 11(3) = 121(3)。因为 11(3) = 1 × 31 + 1 × 30 = 4(10) 且 121(3) = 1 × 32 + 2 × 31 + 1 × 30 = 16(10)。对于进制 10,有 11(10) × 11(10) = 121(10)。这种情况下,应该输出 3。如果没有合适的进制,则输出 0。

    输入描述:
    输入有 T 组测试样例。T 在第一行给出。每一组测试样例占一行,包含三个整数 p, q, r。 p, q, r 的所有位都是数字,并且 1 <= p, q, r <= 1,000,000。

    输出描述:
    对于每个测试样例输出一行。该行包含一个整数,即使得 p × q = r 成立的最小的 B。如果没有合适的 B,则输出 0。

    样例输入:
    3

    6 9 42

    11 11 121

    2 2 2

    样例输出:
    13

    3

    0

    #include<bits/stdc++.h>
    using namespace std;
    
    long long convert(long long a,int n){
        long ans=0,weight=1;              
        int digit;                        
        while(a!=0){
            digit=a%10;
            a=a/10;
            if(digit>=n){
                ans=-1;
                break;
            }
            ans+=weight*digit;
            weight*=n;
        }
        return ans;
    }
    int main(){int n;
    cin>>n;
    int j=0;int ans;
    	while(j<n){
    	
        long long p,q,r;
        long long p1,q1,r1;
        cin>>p>>q>>r;
        
        for(int i=2;i<=16;i++){
            p1=convert(p,i);
            if(p1<0){
                ans=0;
                continue;
            }
            q1=convert(q,i);
            if(q1<0){
                ans=0;
                continue;
            }       
            r1=convert(r,i);
            if(r1<0){
                ans=0;
                continue;
            }       
            if(p1*q1==r1){
                ans=i;  
                break;      
            }
    
        } 
    	j++;cout<<ans<<endl;}
    	
        return 0;
    }
    
    
  • 相关阅读:
    windows 按时自动化任务
    Linux libusb 安装及简单使用
    Linux 交换eth0和eth1
    I.MX6 GPS JNI HAL register init hacking
    I.MX6 Android mmm convenient to use
    I.MX6 GPS Android HAL Framework 调试
    Android GPS GPSBasics project hacking
    Python windows serial
    【JAVA】别特注意,POI中getLastRowNum() 和getLastCellNum()的区别
    freemarker跳出循环
  • 原文地址:https://www.cnblogs.com/Locking-Shonn/p/12569198.html
Copyright © 2011-2022 走看看