我尝试从 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;
}
关于c - 具有递归功能的 10 基的基数转换器 - C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10375922/