测试点3的分析:1022 D进制的A+B (20分)——15行代码AC
生活随笔
收集整理的这篇文章主要介绍了
测试点3的分析:1022 D进制的A+B (20分)——15行代码AC
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
立志用更少的代码做更高效的表达
PAT乙级最优题解——>传送门
输入两个非负 10 进制整数 A 和 B (≤230−1),输出 A+B 的 D (1<D≤10)进制数。
输入格式:
输入在一行中依次给出 3 个整数 A、B 和 D。
输出格式:
输出 A+B 的 D 进制数。
输入样例:
123 456 8
输出样例:
1103
就是模拟手工进制转换的过程
进制转换过程举例: 将十进制的11转换成2进制
其他进制同理
本题思路: 定义字符串,依次存放, 最后逆序输出。
注意点:测试点3数据为0 0 任意进制,若用字符串存储,则串位空, 因此需补0。
#include<bits/stdc++.h> using namespace std; int main() {long long a, b, x;cin >> a >> b >> x;a = a+b;string s;while(a) {s += (char)(a%x+'0');a /= x; }if(s.empty()) s+='0'; //测试点3, 如果都是0,那么串为空,需补0. reverse(s.begin(), s.end()); //由于是algorithm里的,所以不需要 s去调用cout << s; return 0; }
每日一句
零星的变好,最后也会如星河般闪耀
总结
以上是生活随笔为你收集整理的测试点3的分析:1022 D进制的A+B (20分)——15行代码AC的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 1021 个位数统计 (15分)——10
- 下一篇: Hard Disk Drive HDU