PAT-1010 Radix (25)

來源:互聯網
上載者:User

標籤: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)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.