猿问

c语言进制转换,想问下这个算法是什么原理?

void change(int x,int r)

if(x!=0)
{ change(x/r,r);
printf("%d",x%r);
}
}
main()
{int x,r; 
printf("\n input x and r:");
scanf("%d%d",&x,&r); 
change(x,r); 
}

元芳怎么了
浏览 738回答 1
1回答

眼眸繁星

这就是“用模除,返回取余数”的递归调用函数实现。比如x是15,r是2,则——15/2==7-->7/2==3-->3/2==1-->1/2==0,然后由printf输出——1%2==13%2==17%2==115%2==1-->递归完成,所以打在屏幕上就是1111,也就是15的二进制是1111。
随时随地看视频慕课网APP
我要回答