UESTC 1012 Ladygod【进制转换】
来源:互联网 发布:vb书籍pdf 编辑:程序博客网 时间:2024/06/15 15:31
1012 Ladygod
Time Limit:1000MS Memory Limit:65535KB 64bit IO Format:%lld & %llu
Description
有一天人诹Lee
在随手帮女神做题,突然女神发现了自己演算纸上的一个式子,但是式子只有两个加数却没有结果,最近在学不同进制加减法的女神忘了这个两个数字是多少进制了(只记得是小于等于Lee
手中抢走女神,你需要快速计算出这个答案,例如
Input
第一行读入一个整数
接下来有
每行含两个数
Output
对于每个数据输出一个数字,表示可能的答案的最大长度
Sample Input
2
78 87
1 1
Sample Output
3
2
题解:
为了使得得到的结果的位数长,那么进制数要尽量小,最小的情况便是两个数字中出现的1-9 中最大的数字加上1 ,以此可求出是多少进制的数,记为 x
需要计算两个值的和,注意他们都是 x进制的数,所以需要先转化为10进制的数,然后再求转化为x 进制时的位数。
进制转化:(只讨论整数)
如果把n 转化为m 进制的数,那么只需要用一直用n 短除m,记录每步得到的余数,直到n 变成0,然后倒序排列所得到的余数,便是n 的m 进制的表现形式。
/*http://blog.csdn.net/liuke19950717*/#include<stdio.h>#include<math.h>#include<algorithm>using namespace std;int num(int x)//找至少是多少进制的数 {int ans=0;while(x){ans=max(x%10,ans);x/=10;}return ans+1;//别忘加 1 }int slove(int x,int base)//计算最终结果的位数 {int ans=0;while(x){++ans;x/=base;}return ans;}int cal(int x,int base)//计算某进制的数字转化为10进制的结果{int ans=0,i=1;while(x){ans=ans+(x%10)*i;i*=base;x/=10;}return ans;}int main(){int t;scanf("%d",&t);while(t--){int a,b;scanf("%d%d",&a,&b);int base=max(num(a),num(b)),sum=cal(a,base)+cal(b,base);printf("%d\n",slove(sum,base));}return 0;}
0 0
- UESTC 1012 Ladygod【进制转换】
- UESTC 1012 Ladygod 任意进制的转化
- UESTC 1012:Ladygod【模拟】
- UESTC 1012 Ladygod
- UESTC - 1012 Ladygod (模拟)
- UESTC 1012-Ladygod【没有负数】
- Ladygod UESTC
- UESTC--1012--Ladygod(模拟水题)
- UESTC 1012 Ladygod (多校联盟3)
- UESTC 1012 (进制转换)(思维)
- UESTC
- UESTC
- UESTC
- UESTC
- UESTC
- UESTC
- UESTC
- UESTC
- js积累
- 【HDU 5646】DZY Loves Partition
- 关于c++中stack、queue和priority_queue的介绍
- 用javascript实现sliding door 的效果
- acm_problem_a_moving_tables
- UESTC 1012 Ladygod【进制转换】
- useradd 与adduser的区别
- 欢迎使用CSDN-markdown编辑器
- NIIT 实训java笔记--3.10
- code vs 1380没有上司的舞会
- ubuntu的which、whereis、locate和find命令
- 官网下载apache服务器并运行
- 【CodeForces】Round #345 (Div. 2) A. Joysticks(水)
- C与语言报错