C++编程用递归法将一个m进制的整数转换成n进制的整数,其中m,n为小于10的整数?

 我来答
匿名用户
2020-04-01
展开全部

程序实现把m进制的x转为n进制,递归实现

例如,7进制的542转为5进制为2100


#include<iostream>

typedef long long LL;


LL f(int n, int i, LL p) {

if (i == 0) return p;

else return f(n, i - 1, p * n);

}


LL m2ten(LL x, int m, int i, LL s) {

if (x == 0) return s;

else return m2ten(x / 10, m, i + 1, s + x % 10 * f(m, i, 1));

}


void ten2n(LL t, int n) {

if (t > n - 1)

ten2n(t / n, n);

std::cout << t % n;

}


void m2n(LL x, int m, int n) {

ten2n(m2ten(x, m, 0, 0), n);

}


int main() {

LL x;

int m, n;

std::cin >> x >> m >> n;

m2n(x, m, n);

std::cout<<std::endl;

return 0;

}

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式