首页 > 试题广场 >

完成下列各程序中的函数定义

[问答题]
完成下列各程序中的函数定义(请勿修改主函数main中的语句)。
程序trans的功能是将十进制整数m转换成k进制(2≤k≤9)数的数字输出。例如输入78和8,则应该输出116。

使用递归而不是循环,因为觉得若使用循环第一次m对k求模的结果实际上是最小一位数字,则最小一位的数字首先被打印出来(在最左的位置)即在在最大位上。如trans(25,8)的结果是13而非31
void trans(int m, int k)
{
        int r;
        r = m % k;    //余数就是这一位上的数字
        if (m >= k)
        {                       //进位
                m /= k;
                trans(m, k);
         }
        printf("%d", r);
        return;
}
编辑于 2018-02-27 23:55:06 回复(1)

void trans(int aint b) {
    int temp = a;
    string s = "";
    while(temp) {
        s += to_string(temp % b);
        temp /= b;
    }
    reverse(s.begin(), s.end());
    cout << s << endl;
}

发表于 2021-08-08 16:06:43 回复(0)
void trans(int m,int k) {
    int tag=0,flag=1;
    while (m) {
        tag+=m%8*flag;
        m/=8;
        flag*=10;
    }
    printf("\n%d",tag);
}
发表于 2017-12-06 20:24:55 回复(1)