寻找使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;
}
相关推荐
MATLAB代码顾问15 分钟前
多种群协同进化算法(MPCE)求解大规模作业车间调度问题——附MATLAB代码
开发语言·算法·matlab
FQNmxDG4S18 分钟前
JVM内存模型详解:堆、栈、方法区与垃圾回收
java·jvm·算法
We་ct37 分钟前
LeetCode 72. 编辑距离:动态规划经典题解
前端·算法·leetcode·typescript·动态规划
AI科技星39 分钟前
精细结构常数α作为SI 7大基本量纲统一耦合常数的量子几何涌现理论
算法·机器学习·数学建模·数据挖掘·量子计算
txzrxz1 小时前
动态规划——背包问题
算法·动态规划
Yingye Zhu(HPXXZYY)1 小时前
洛谷 P15553 [CCPC 2025 哈尔滨站] 液压机
算法
谭欣辰2 小时前
LCS(最长公共子序列)详解
开发语言·c++·算法
m0_629494732 小时前
LeetCode 热题 100-----17.缺失的第一个正数
数据结构·算法·leetcode
Cando学算法2 小时前
鸽笼原理(抽屉原理)
c++·算法·学习方法
Tisfy2 小时前
LeetCode 0796.旋转字符串:暴力模拟
算法·leetcode·题解·模拟·字符串匹配