百练_2972:确定进制
来源:互联网 发布:软件项目管理常见问题 编辑:程序博客网 时间:2024/05/29 14:23
6*9 = 42 对于十进制来说是错误的,但是对于13进制来说是正确的。即, 6(13) * 9(13) = 42(13), 而 42(13) = 4 * 131+ 2 * 130= 54(10)。 你的任务是写一段程序读入三个整数p、q和 r,然后确定一个进制 B(2<=B<=16) 使得 p * q = r. 如果 B有很多选择, 输出最小的一个。例如: p = 11, q = 11, r = 121. 则有 11(3) * 11(3) = 121(3) 因为 11(3) = 1 * 31+ 1 * 30= 4(10) 和 121(3) = 1 * 32+ 2 * 31+ 1 * 30= 16(10)。 对于进制 10,有 11(10) * 11(10) = 121(10)。这种情况下,应该输出 3。如果没有合适的进制,则输出 0。
6 9 42
13
#include<stdio.h>#include<string.h>int b2ten(char*x,int b){ int ret=0; int len=strlen(x); for(int i=0;i<len;i++){ if(x[i]-'0'>=b) return -1; ret*=b;ret+=x[i]-'0'; } return (long)ret;}int main(){int n,b;char p[8],q[8],r[8];int pAlgorism,qAlgorism,rAlgorism;scanf("%s%s%s",p,q,r);for(b=2;b<=16;b++){pAlgorism=b2ten(p,b);qAlgorism=b2ten(q,b);rAlgorism=b2ten(r,b);if(pAlgorism==-1||qAlgorism==-1||rAlgorism==-1) continue;if(pAlgorism*qAlgorism==rAlgorism){printf("%d\n",b);break;}}if(b==17) printf("0\n");return 0;}
阅读全文
0 0
- 百练_2972:确定进制
- 百练_2972确定数制进制转换
- 百练poj2972 确定进制
- POJ 百练 2972: 确定进制
- 百练 2972 确定进制
- poj 百练2972确定进制
- 百练2972:确定进制
- 百练OJ:2972: 确定进制
- 百炼OJ 2972:确定进制
- POJ百炼-2972-确定进制
- 百练_3249:进制转换
- 确定进制
- POJ1331确定进制
- 确定进制
- 确定进制
- 确定进制
- 【poj1331】确定进制
- 确定进制
- iOS 快速只获取Http响应头
- Angular2上应用基于jQuery的Bootstrap 3
- JEESZ-Zookeeper集群安装
- AOP
- Android开发笔记
- 百练_2972:确定进制
- select
- 使用mysql执行删除语句时出现的问题
- ES7、ES8新特性
- 程序员为什么会加班?????
- ailen
- Java8 Lambda表达式详解
- jquery中选取兄弟节点的方法
- Angular-seed 入门