进制转换 1000ms 262144K 描述: 将一个十进制数N转换成R进制数输出,2≤R≤16,R≠10。 输入: 多行。第一行指出以下一共有多少组数据,后续每行包含两个整数N和R,以空格分隔,-100000≤N≤100000,2≤R≤16,R≠10。 输出: 多行。每行给出转换后的R进制数。
时间: 2023-05-27 08:06:55 浏览: 75
#include <iostream>
#include <stack>
using namespace std;
char intToChar(int n) { // 将0~15转换为'0'~'F'
if (n < 10) return n + '0';
else return n - 10 + 'A';
}
int main() {
int T;
cin >> T;
while (T--) {
int N, R;
cin >> N >> R;
if (N < 0) { // 处理负数
cout << "-";
N = -N;
}
stack<char> s; // 用栈存储每一位的R进制数
while (N) { // 不停地除以R,将余数入栈
int remainder = N % R;
s.push(intToChar(remainder));
N /= R;
}
while (!s.empty()) { // 依次输出栈中元素
cout << s.top();
s.pop();
}
cout << endl;
}
return 0;
}
相关问题
查看提交统计提问 总时间限制: 1000ms 内存限制: 128000kB 描述 一个十进制数n(0<=n<=200000000)转换成二进制数,例如输入10,输出1010.< span=""><=n<=200000000)转换成二进制数,例如输入10,输出1010.<> 输入 一个整数n 输出 二进制数 样例输入 10 样例输出 1010 查看 提交 统计 提问
答案:
可以使用位运算来将十进制数转换为二进制数。具体实现可以参考以下代码:
int n;
cin >> n;
string binary = "";
while (n > 0) {
binary = to_string(n % 2) + binary;
n /= 2;
}
cout << binary << endl;
这段代码会将输入的十进制数n转换为二进制数,并输出结果。
7-12 转换函数使用 分数 12 作者 陈春晖 单位 浙江大学 输入一个整数和进制,转换成十进制输出 输入格式: 在一行输入整数和进制 输出格式: 在一行十进制输出结果 输入样例: 在这里给出一组输入。例如: 45,8 输出样例: 在这里给出相应的输出。例如: 37 代码长度限制 16 KB 时间限制 400 ms 内存限制 64 MB
根据题目描述,需要输入一个整数和进制,将其转换成十进制并输出。下面是 Python 代码实现:
```python
def any_to_decimal(num, base):
"""
将 num 从 base 进制转换为 10 进制
"""
decimal = 0
for i, digit in enumerate(reversed(str(num))):
decimal += int(digit) * base ** i
return decimal
# 读取输入
num, base = input().split(',')
num = int(num)
base = int(base)
# 转换成十进制
decimal = any_to_decimal(num, base)
# 输出结果
print(decimal)
```
首先定义了一个 `any_to_decimal` 函数,它接受两个参数 `num` 和 `base`,将 `num` 从 `base` 进制转换为 10 进制,并返回转换后的结果。
然后读入输入,将输入的字符串按照逗号分隔,并将第一个部分转换成整数 `num`,第二个部分转换成整数 `base`。
接下来调用 `any_to_decimal` 函数将 `num` 从 `base` 进制转换成 10 进制,并将结果赋值给变量 `decimal`。
最后输出 `decimal`。