c++ 进制转换
发布时间:2020-12-16 10:40:29 所属栏目:百科 来源:网络整理
导读:题目描述 关于把整数N由十进制转化为R进制,我们习惯用的办法是“除R倒取余”,这种方法需要用N反复对R进行除法操作,并在做除法操作的时候记录每个余数,最后反序输出。实际上,关于进制转换,用递归的方法求解会更加简洁明了,你知道怎么做么? 输入 两个
题目描述关于把整数N由十进制转化为R进制,我们习惯用的办法是“除R倒取余”,这种方法需要用N反复对R进行除法操作,并在做除法操作的时候记录每个余数,最后反序输出。实际上,关于进制转换,用递归的方法求解会更加简洁明了,你知道怎么做么? 输入两个正整数N,R。1 <= N <= 10000,2 <= R <= 10。 输出用递归的方法求十进制的N转化为R进制的结果。 样例输入
样例输出
提示Source Code#include <iostream> using namespace std; int main() { long n; int p,c,m=0,s[100]; cin >> n;//n是要转换的数 (有可能很长) cin >> p;//p是进制数 while (n != 0)//当n被取完时退出循环 { c = n % p;//c是分离出来此进制的第一位 n = n / p;//对2取整 m ++;//转换后一共有几位 s[m] = c;//把转换后的单个位放到数组里面 } for(int k = m;k >= 1;k --)//按格式输出 { if(s[k] >= 10) cout << (char)(s[k]+55); else cout << s[k]; } cout << endl; return 0; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |