我尝试从 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;
}
但我对其他感到困惑,它不起作用。我该如何解决它?有什么优惠吗?谢谢。。
例如
#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;
}
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);
}