递归处理倒序时非常方便(在解决这类问题中,递归比循环简单)
例如:将十进制数写为二进制:
#define _CRT_SECURE_NO_WARNINGS//VS要加,要不会报错
#include<stdio.h>
void to_binary(unsigned long n);
int main(void) {
unsigned long number;
printf("Enter an integer (q to quit):\n");
while (scanf("%lu", &number) == 1) {
printf("Binary equivalent: ");
to_binary(number);
putchar('\n');
printf("Enter an integer (q to quit):\n");
}
printf("Done.\n");
return 0;
}
void to_binary(unsigned long n) {
int r;
r = n % 2;
if (n >= 2)
to_binary(n / 2);
putchar(r == 0 ? '0':'1');
return;
}