进制转换 - 九度教程第62题
题目
时间限制:1 秒 内存限制:32 兆 特殊判题:否
题目描述:
将 M 进制的数 X 转换为 N 进制的数输出。
输入:
输入的第一行包括两个整数:M 和 N(2<=M,N<=36)。
下面的一行输入一个数 X,X 是 M 进制的数,现在要求你将 M 进制的数 X 转换成 N 进制的数输出。
输出:
输出 X 的 N 进制表示的数。
样例输入:
16 10
F
样例输出:
15
提示:
输入时字母部分为大写,输出时为小写,并且有大数据。
来源:
2008年清华大学计算机研究生机试真题
该题初看起来很像一般的进制转换,但提示中明确告知,输入会有较大的数据,即为了完成需要的进制转换,需要使用高精度整数。同时,考虑到进制转换的内容,高精度整数需要进行以下运算:高精度整数与普通整数的求积,高精度整数之间求和,高精度整数除以普通整数,高精度整数对普通整数求模等。
#include <stdio.h>
#include <string.h>
#define maxDigits 100
struct bigInteger{//高精度整数结构体
int digit[maxDigits];
int size;
void init(){//初始化
for(int i=0;i<maxDigits