PAT1010(BUG)
来源:互联网 发布:知乎法国婆婆 编辑:程序博客网 时间:2024/05/19 19:30
http://www.patest.cn/contests/pat-a-practise/1010
思路:都转化为10进制,然后比较大小即可。
BUG之处在于:题目中测试用的进制可能非常的大,表现为:如果把下列程序的max缩小,错误测试点会增加,而如果增加到很大,个别测试点会超时,并且long long也未必能存下这么大的数字,待学过算法以后再来解决。
#include <iostream>#include <string>#include <cmath>#define max 1000using namespace std;const char radix[]="0123456789abcdefghijklmnopqrstuvwxyz";long long convers_to_deci(string ,int ); //将一个string类型转化为10进制整型并返回 int main(){ string N1,N2; int tag,rdx,isOK=0; long long N1_deci,N2_deci; cin>>N1>>N2>>tag>>rdx; switch(tag){ case 1: N1_deci=convers_to_deci(N1,rdx); for(int i=1;i<=max;++i){ if(N1_deci==convers_to_deci(N2,i)){ cout<<i; isOK=1; break; } } break; case 2: N2_deci=convers_to_deci(N2,rdx); for(int i=1;i<=max;++i){ if(N2_deci==convers_to_deci(N1,i)){ cout<<i; isOK=1; break; } } break; } if(!isOK){ cout<<"Impossible"; } return 0;} long long convers_to_deci(string s,int rdx){ int dgt,exp,ret=0; for(int i=s.length()-1;i>=0;--i){ for(int j=0;j<sizeof(radix);++j){ if(s[i]==radix[j]){ dgt=j; break; } } exp=s.length()-i-1; ret+=dgt*pow(rdx,exp); } return ret;}
0 0
- PAT1010(BUG)
- pat1010. Radix (25) BUG!!!
- pat1010
- PAT1010
- PAT1010
- pat1010
- pat1010
- PAT1010
- PAT1010
- pat1010
- PAT1010
- pat1010 Radix
- pat1010. Radix
- PAT1010 Radix
- PAT1010. 一元多项式求导
- pat1010.Radix(25)
- PAT1010完美数列
- pat1010:一元多项式求导
- pandas 模块学习
- 集算器协助报表工具实现跨行运算
- “Device eth0 does not seem to be present”解决办法
- Azkaban Quick Start
- linux命令
- PAT1010(BUG)
- Deepin_1
- 安装最新Mysql community server 5.7.10社区版的坑爹经历
- python datetime模块
- leetcode笔记:Word Search
- input与raw_input的区别
- SQL Developer Connect to MySQL
- UVA-10285Longest Run on a Snowboard
- 拦截器最后一讲-使用拦截器完成权限控制