寻找使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;
}
相关推荐
mit6.82416 小时前
dfs|前后缀分解
算法
扫地的小何尚16 小时前
NVIDIA RTX PC开源AI工具升级:加速LLM和扩散模型的性能革命
人工智能·python·算法·开源·nvidia·1024程序员节
千金裘换酒17 小时前
LeetCode反转链表
算法·leetcode·链表
byzh_rc18 小时前
[认知计算] 专栏总结
线性代数·算法·matlab·信号处理
qq_4335545419 小时前
C++ manacher(求解回文串问题)
开发语言·c++·算法
歌_顿19 小时前
知识蒸馏学习总结
人工智能·算法
闲看云起19 小时前
LeetCode-day6:接雨水
算法·leetcode·职场和发展
没学上了19 小时前
VLM_一维离散卷积与二维离散卷积(还是复习感觉还行)
算法
黛色正浓20 小时前
leetCode-热题100-贪心合集(JavaScript)
javascript·算法·leetcode
轻微的风格艾丝凡20 小时前
嵌入式定时器计时技巧:用有符号数省略溢出判断的底层逻辑与实践
数据库·算法·dsp开发·嵌入式软件