POJ 1331解题报告---确定进制

博客介绍了如何解决POJ 1331问题,通过找到每行数字的最大单个位并确定最小可能进制,从这个进制开始到16进制逐一尝试,判断能否将前两个数字相乘等于第三个数字的值。如果找到符合条件的进制则输出,否则输出0。
摘要由CSDN通过智能技术生成

每行三个数字,分别找到每个数字最大的单个位的数字,然后再选出这三个单个位数字当中最大的那个,因为进制肯定大于数当中的所有单个数字,比如如果一个数当中有数字5,那起码得6进制才能表示这个数。这样找到最大的单个数字之后我们就确定了这行的这三个数可能能用的最小进制,按照题目的要求最大可能进制为16,且题目说了输入的数字都是整数,于是我们也不必再考虑输入的数字带有字母的情况(进制大于10)。这样子就从该行的最小可能进制往16进制那边试就是了,把每种可能进制下的三个数字的十进制值求出来,然后把前两个数字的十进制值相乘,看是不是能等于第三个数的十进制值,如果能等,马上结束尝试并输出这个满足要求的进制,如果试到16进制都没有符合要求的,不再尝试并输出0。

本人已AC代码如下

#include<stdio.h>
int zhuan10(int shuzi,int jinzhi){
int jiwei=1;
int sum=shuzi%10;
//printf("传进来的数字是:%d,进制是:%d\n\n",shuzi,jinzhi);
while((shuzi/10)!=0){
int mubiao=1;
jiwei++;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值