码迷,mamicode.com
首页 > 其他好文 > 详细

PAT-1010 Radix (25)

时间:2014-09-18 23:32:04      阅读:266      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   os   ar   for   div   sp   

#include<stdio.h>
#include<string>
#include<cmath>
#include<iostream>
using namespace std;

int main()
{
  string a,b;
  int tag,radix;
  int anum,bnum;
  //freopen("1010-in.txt","r",stdin);
  //freopen("1010-out.txt","w",stdout);
  
  while(cin>>a>>b>>tag>>radix)
  {
     anum=bnum=0;
     string temp;
     if(tag==1)
     {
        int index=0;
        for(int j=a.length()-1;j>=0;j--)
        {
           anum+=(a[j]>=a?a[j]-a+10:a[j]-0)*pow(radix*1.0,index);
           index++;
        }  
        temp=b;
     }else
     {
        int index=0;
        for(int j=b.length()-1;j>=0;j--)
        {
           anum+=(b[j]>=a?b[j]-a+10:b[j]-0)*pow(radix*1.0,index);
           index++;
        } 
        temp=a;
     }
     //printf("anum=%d\n",anum);  
     char max=0;
     //get max num; 
     for(int i=0;i<temp.length();i++)
     {
       if(temp[i]>max)
         max=temp[i];
     }
     int maxNum=(max>=a?max-a+10:max-0);
     bool flag=false;
     int ind;
     
     //printf("maxNum=%d\n",maxNum);
     long long  maxRadix=0xffffffff;
     maxRadix=maxRadix>>1;
     for(ind=maxNum+1;ind<=maxRadix;ind++)
     {
        bnum=0;
        int index=0;
        for(int j=temp.length()-1;j>=0;j--)
        {
           bnum+=(temp[j]>=a?temp[j]-a+10:temp[j]-0)*pow(ind*1.0,index);
           index++;
        }
        if(bnum>anum)
           break;
        //printf("%d ",bnum);
        if(anum==bnum)
        {
            flag=true;
            break;
        }
     }
     
     if(flag)
     {
        printf("%d\n",ind==1?ind+1:ind);
     }
     else
     {
         printf("Impossible\n");
     }
  }
      
}

这道题目误以为基数最大就是36,只拿到19分,但是网上一查才知道基数可以很大很大,可以达到long long类型。如果用上面代码只能得到23分。用long long int是八位。网上说用二分查找,待做。。。。

PAT-1010 Radix (25)

标签:style   blog   color   io   os   ar   for   div   sp   

原文地址:http://www.cnblogs.com/championlai/p/3980214.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!