请你编一程序实现两种不同进制の间的数据转换
输入格式:共三行,第一行是一个正整数表示需要转换的数的进制n(2≤n≤16),第二行是一个n进制数若n>10则用大写字母A-F表示數码10?15,并且该n进制数对应的十进制的值不超过第三行也是一个正整数,表示转换之后的数的进制m(2≤m≤16)
输出格式:一个正整数,表示轉换之后的m进制数
可以将原问题分解成两个问题来解决:1.将n进制数转换为10进制数;2.将10进制数转换为m进制数。于是进制转换就被分为了兩个部分。
由于可能出现A-F所以输入输出要使用字符串;对应的十进制的值不超过,所以保存十进制数可以用int
第一部分,可采用按权相加法:
第二部分可采用除m取余法:
//占用长度最长的进制是二进制,而数字大小不超过()10
//所以可以得到2^n(开的数组下标)<=(int的范围内),因此35不能存储为因为没有足够内存了
提交后,有两个点WA了
哪里出了问题呢?我下载了第一个WA点的数据:
经过思考想到:F和P刚好楿差10,
于是便发现了这处错误:
发布了1 篇原创文章 · 获赞 2 · 访问量 59