我尝试从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;
}
但我在其他方面感到困惑,它不起作用。我该如何解决?有什么优惠? 感谢..
答案 0 :(得分:3)
E.g。
#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;
}
答案 1 :(得分: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);
}