进制转换——除r取余法

字节跳动校招内推码: C4BDSMC
投递链接: https://job.toutiao.com/s/J691fRK
内推交流QQ群:1049175720

Think:
1知识点:进制转换除r取余法)+stack容器
2反思:注意当输入0的情况

sdut题目链接
进制转换——百度经验

进制转换
Time Limit: 1000MS Memory Limit: 65536KB
Problem Description
输入一个十进制数N,将它转换成R进制数输出。

Input
输入数据包含多个测试实例,每个测试实例包含两个整数N32位整数)和R(2<=R<=16, R != 10)。

Output
为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。

Example Input
7 2
23 12
-4 3

Example Output
111
1B
-11

Hint

Author
HDOJ

以下为Accepted代码

#include <bits/stdc++.h>using namespace std;stack <char> sta;int main){long long n, r, t;char c;bool flag;while~scanf"%lld %lld", &n, &r)){while!sta.empty))sta.pop);flag = true;ifn < 0){flag = false;n = -n;}if!n)sta.push'0');whilen){t = n%r;ift < 10)c = t + '0';elsec = t - 10 + 'A';sta.pushc);n /= r;}if!flag)printf"-");while!sta.empty)){printf"%c", sta.top));sta.pop);}printf"\n");}return 0;
}/***************************************************
User name: 
Result: Accepted
Take time: 0ms
Take Memory: 248KB
Submit time: 2017-06-18 22:04:42
****************************************************/

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注