寻找使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;
}
相关推荐
自学小白菜6 分钟前
每周刷题 - 第三周 - 双指针专题 - 02
python·算法·leetcode
杜子不疼.21 分钟前
【LeetCode76_滑动窗口】最小覆盖子串问题
算法·哈希算法
ComputerInBook30 分钟前
代数基本概念理解——特征向量和特征值
人工智能·算法·机器学习·线性变换·特征值·特征向量
不能只会打代码39 分钟前
力扣--3433. 统计用户被提及情况
java·算法·leetcode·力扣
biter down1 小时前
C++ 解决海量数据 TopK 问题:小根堆高效解法
c++·算法
用户6600676685391 小时前
斐波那契数列:从递归到缓存优化的极致拆解
前端·javascript·算法
初夏睡觉1 小时前
P1055 [NOIP 2008 普及组] ISBN 号码
算法·p1055
程芯带你刷C语言简单算法题1 小时前
Day28~实现strlen、strcpy、strncpy、strcat、strncat
c语言·c++·算法·c
踏浪无痕2 小时前
周末拆解:QLExpress 如何做到不编译就能执行?
后端·算法·架构
一个不知名程序员www2 小时前
算法学习入门--- 树(C++)
c++·算法