寻找使a×b=c成立的最小进制数(2-16进制)

该程序用于寻找使a×b=c成立的最小进制数(2-16进制)。主函数读取3个整数a,b,c,调用getNumSys函数进行计算。该函数从2进制开始尝试,使用ito10函数将a,b,c转换为10进制数,检查a×b是否等于c。ito10函数实现进制转换并验证数字是否合法。若找到满足条件的进制则返回,否则返回0。程序输出所求进制数或0表示无解。

cpp 复制代码
#include<stdio.h>

int getNumSys(int a,int b,int c);
int ito10(int num,int n);
int main(){
    int a,b,c;
    scanf("%d%d%d",&a,&b,&c);
    printf("%d\n",getNumSys(a,b,c));    
    
    return 0;
}
int getNumSys(int a,int b,int c){
    // abc设为i进制,需要把abc全转为10进制,然后进行分析
    //哪就写个i进制转10的函数 int ito10(int num,int n)
    int i=2;
    for(;i<=16;i++){
        if(ito10(a,i)*ito10(b,i)==ito10(c,i))
            return i;
    }
    return 0;    
}
int ito10(int num,int n){
    // i进制num转为10进制的方法
    //对应的权X对应的值 加起来    
    int base = 1;
    int sum =0;
    while(num) {
        if(num%10>=n) return -1; //说明num这数不符合n进制
        sum += base*(num%10);
        base*=n; //处理权
        num/=10;           
    }    
    return sum;
}
相关推荐
菩提树下的凡夫1 天前
新版OpenCV5.0在ONNX模型的推理应用
opencv·算法
影寂ldy1 天前
C# 三大内置委托(Action / Func / Predicate)+ Lambda
c++·算法·c#
机器学习之心1 天前
小龙虾优化算法(COA)驱动的CNN-LSTM多输出回归模型及其SHAP可解释性分析
算法·cnn·lstm·小龙虾优化算法·cnn-lstm多输出回归·shap可解释性分析
阿正的梦工坊1 天前
【Rust】13-Trait 系统、动态分发与对象安全
算法·安全·rust
言存1 天前
力扣热题283 移动零
数据结构·算法·leetcode
字节高级特工1 天前
智能指针原理与使用场景全解析
开发语言·c++·算法
珊瑚里的鱼1 天前
【动态规划】买卖股票的最佳时机Ⅲ
算法·动态规划
逻辑星辰1 天前
x-ds-pow-response逆向分析
开发语言·人工智能·python·深度学习·算法
CQU_JIAKE1 天前
6.9【aAAA]
算法
Lewiis1 天前
白话桶排序
数据结构·算法·golang·排序算法