递归
1, 用递归把一个十进制数转换成字符串,输出。
void my_itoa(unsigned int n)
{
unsigned int v;
v = n/10; //取整
if (0 != v)
my_itoa(v); //把余下的整数往下传,进行递归
putchar(n%10 + '0'); //取值
}
解析:用123整数举例,传递给my_itoa函数的参数调用分别是:
my_itoa(123); ----> 对应打印3
my_itoa(12); ----> 对应打印2
my_itoa(1); ----> 对应打印1
此时不在调用自身开始执行打印语句,并开始输出,传的参数分别是:123,12,1。这样打印的数分别是1,2,3。
由此可以推出,把一个十进制数转成2、8、16进制都可以用递归处理。
阅读(1368) | 评论(0) | 转发(0) |