问答题 请写递归函数,把输入的一个整数转换成二进制数输出。
【正确答案】这是一个把十进制整数不断被2除的过程,每次被2除的余数即是一个二进制位上的数(1或0)。在递归算法中,每次被2除后的余数若保留在每个递归层的变量d中,当满足递归结束条件,退出递归函数之前输出该层变量d中的值,则先输出的就是转换后二进制数中高位上的值,这可用以下outninary递归函数来完成: void outninary(int a) { int d; d=a%2; if(a!=0) {outbinary(a/2); printf("%d", d); } }
【答案解析】