nyoj1135 进制转换

来源:互联网 发布:丁丁软件如何使用 编辑:程序博客网 时间:2024/05/20 21:48
<pre name="code" class="cpp">第一次没有考虑完全 结果wr了。。。给的样例还是比较贴心的  如果不这样给  感觉自己想不出来。。。例如11 11 121 二进制也成立 三进制也成立....可是121就已经最少是三进制了 所以还要多一个筛选。。
<pre name="code" class="cpp">#include <stdio.h>#include <math.h>int mark;int change(int n,int k){//十进制转换为任意进制int t=0,sum=0;while(n)sum=sum+n%10*pow(k,t++),n/=10;return sum;}void select(int x){//筛选数字中最大的一个。。用mark保存while(x){if(mark<x%10)mark=x%10;x=x/10;}}int main(){int a,b,c,i;while(scanf("%d %d %d",&a,&b,&c)!=EOF){mark=-1;select(a);select(b);select(c);if(mark<2)mark=2;elsemark=mark+1;for(i=mark;i<=16;i++){if(change(a,i)*change(b,i)==change(c,i))break;}if(i<=16)printf("%d\n",i);elseprintf("0\n");}return 0;}

                                             
0 0
原创粉丝点击