0

我尝试从 10 基数转换任何数基数。在我将两个具有相同基数的数字相乘之后,该函数应该是递归的。

    double convert(int number,int base)
{
    int digit = 1;
    double sum=0;
    int i=0;
    int figure;
    double end;
    if(base==10)
        return number;

    else
    {
        figure = (digit % (digit * 10) - number % digit) / digit;
        end=pow(base,i);
        sum+=figure*end;
        ++i;
        digit *= 10;

        convert(figure,base);

    }
return sum;
}

但是我很困惑,它不起作用。我该如何解决?有什么优惠吗?谢谢..

4

2 回答 2

3

例如

#include <stdio.h>

int convert(int number,int base){
    if(number == 0 || base==10)
        return number;

    return (number % base) + 10*convert(number / base, base);
}

int main () {
    int i;
    for(i=2;i<=10;++i)
        printf("%d is %d base(%d)\n", 100, convert(100, i), i);
    return 0;
}
于 2012-04-30T08:59:54.853 回答
0
static string ToBase(int n, int @base)
    {
        Func<int, string, string> x = null;
        return (x = (i, j) => 
        {
            if (i == 0)
            {
                return j;
            }
            return x(i / @base, i % @base + j);
        })(n, string.Empty);
    }
于 2015-05-01T02:08:40.033 回答