编程题——进制转换

    xiaoxiao2022-07-13  153


    编程题——进制转换


    题目描述: 给定一个十进制数M,以及需要转换的进制数N。将十进制数M转化为N进制数 输入描述: 输入为一行,M(32位整数)、N(2 ≤ N ≤ 16),以空格隔开。 输出描述: 为每个测试实例输出转换后的数,每个输出占一行。如果N大于9,则对应的数字规则参考16进制(比如,10用A表示,等等)

    示例: 输入 7 2 输出 111


    程序代码如下:


    #include <iostream> #include <string> using namespace std; /*十进制转其他进制:除权取余倒着读 *不断除N直到M为0,取余数对应保存到s,最后逆置s输出即可 *考虑几种情况: * 负数:先转为正数,最后再补'-'; * 余数超过9:直接创建table来对应保存,如10对应为第10个元素A */ int main() { int M, N; bool flag = false;//用来判断是否为负数以进行加'-'操作 string s, table = "0123456789ABCDEF"; cin >> M >> N; if (M < 0) { M = 0 - M; flag = true; } while (M) { s += table[M%N]; M /= N; } if (flag) s += '-'; reverse(s.begin(), s.end()); cout << s << endl; return 0; }

    程序运行结果如下:


    最新回复(0)