PAT (Advanced Level) 1010 Radix (25 分)
发布日期:2021-06-29 12:22:25
浏览次数:2
分类:技术文章
本文共 1980 字,大约阅读时间需要 6 分钟。
序:
不完美才是人生,这道题自己写的永远是24分。题目概述:
给出两个数a和b,以及进制radix。假设a在radix进制下,问是否存在进制radix1使得b在radix1下与a在radix下的值相等。分析:
1.全部转成十进制比较,十进制的值用unsigned longlong存,这样最大 2.从2开始尝试radix1,直到100(再多也是差一个测试点),如果值比原十进制数小则continue;相等则输出进制;若大了,则impossible。这里随着进制的增加,一个既定的数的十进制值也会增加。 3.数的每位都必须小于进制数,否则continue。//尝试到100进制//随着进制的变大,其值会逐渐变大#includeusing namespace std;int main(){ string str1, str2, rest; int tag, radix; cin >> str1 >> str2 >> tag >> radix; long long int valin10 = 0; string str; if(tag == 1) { str = str1; rest = str2;} else if(tag == 2) { str = str2; rest = str1;} int len = str.size(); int temp; for(int i = 0; i < len; i++) { if(isdigit(str[len-1-i])) { temp = str[len-1-i] - '0'; valin10 += temp * pow(radix, i); } else { temp = str[len-1-i] - 'a' + 10; valin10 += temp * pow(radix, i); } } for(int index = 2; index <= 100; index++) { unsigned long long tryvalin10 = 0; len = rest.size(); bool flag = true; for(int i = 0; i < len; i++) { if(isdigit(rest[len-1-i])) { temp = rest[len-1-i] - '0'; if(temp >= index) flag = false; tryvalin10 += temp * pow(index, i); } else { temp = rest[len-1-i] - 'a' + 10; if(temp >= index) flag = false; tryvalin10 += temp * pow(index, i); } } if(flag == false) continue; if(tryvalin10 < valin10) continue; else if(tryvalin10 == valin10) { cout << index << endl; return 0; } else { cout << "Impossible" << endl; return 0; } } }
总结:
看了柳神的做法,二分可以更快。且她的遍历范围不止100,而是整个可能的进制,但是写法比较晦涩难懂。我在第七个测试点过不了,唯一可能的解释就是这个进制过大了,我没有遍历到。 请诸位多多指教!转载地址:https://bridge-killer.blog.csdn.net/article/details/115431888 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
很好
[***.229.124.182]2024年04月29日 05时18分39秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
「第二篇」全国一等奖,经验帖。
2019-04-29
「第三篇」全国电子设计竞赛,这些你必须知道的比赛细节,文末附上近十年电赛题目下载...
2019-04-29
5G小科普(漫画版,So easy!)
2019-04-29
无人再提华强北
2019-04-29
千万不要小瞧那些不好好写代码的程序员
2019-04-29
80后,天才程序员, Facebook 第一任 CTO,看看开挂的人生到底有多变态?
2019-04-29
「第四篇」电赛控制题可以准备一些什么?
2019-04-29
「第五篇」全国电子设计竞赛-电源题设计方案总结
2019-04-29
「第六篇」对于电赛,我们应该看重什么?
2019-04-29
树莓派翻车了
2019-04-29
垃圾分类背后的数据和真相
2019-04-29
PID算法搞不懂?看这篇文章就够了。
2019-04-29
这位电子工程师,你不能错过。
2019-04-29
十八般武艺教你如何解决问题
2019-04-29
「权威发布」2019年大学生电子设计竞赛,仪器设备和主要元器件清单
2019-04-29
「重磅猜题之第二篇」2019年大学生电子设计竞赛
2019-04-29
知乎:硬件和软件哪个吃香?
2019-04-29
中国深圳,600架无人机的盛典!
2019-04-29
干货分享 JVM 之第 3 篇 —— Java 内存结构相关
2019-04-29