电子学会编程等级考试二级-函数
电子学会编程等级考试二级-函数
1.13-34
确定进制
#include<bits/stdc++.h> using namespace std; int bs[]={2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; int toTen(int b,int x){//b进制 x转10进制 int power=1;//最右边开始处理 第一位2^0=1 int ret=0; while(x>0){ if(x%10>=b){//如果某一位比进制大,就不可能是这个进制 返回-1特殊处理 return -1; } ret =ret+(x%10*power);//当前位取*权值累加到ret x/=10; power=power*b;//每左移一位 power*b } return ret; } int p,q,r; int main(){ cin>>p>>q>>r; for(int i=0;i<15;i++){// 2-16 逐一转10进制 int pt=toTen(bs[i],p); int qt=toTen(bs[i],q); int rt=toTen(bs[i],r); if(pt==-1 || qt==-1 || rt==-1){//如果不可能是某进制 continue continue; } if(pt*qt==rt){//10进制 符号条件 输出 return cout<<bs[i]; return 0; } } cout<<0;//没有return 说明没有符合的 return 0; }
作者:newcode 更多资源请关注纽扣编程微信公众号
从事机器人比赛、机器人等级考试、少儿scratch编程、信息学奥赛等研究学习