递归递归,先递再归
#include<stdio.h>
void printdigits(int n);
int main()
{
int n;
scanf("%d", &n);
printdigits(n);
system("pause");
return 0;
}
void printdigits(int n)
{
if (n < 10)
printf("%d\n", n);
else
{
printdigits(n / 10);
printf("%d\n", n % 10);
}
}
输入样例:
12345
输出样例:
1
2
3
4
5
习题10-7 十进制转换二进制 (15分)
#include <stdio.h>
void dectobin( int n );
int main()
{
int n;
scanf("%d", &n);
dectobin(n);
return 0;
}
void dectobin(int n) {
if (n / 2 == 0) {
printf("%d", n % 2);
}
else {
dectobin(n / 2); //计算要/2
printf("%d", n%2); //输出要%2
}
}
递归程序设计的关键是归纳出递归式子,不同的问题其递归式子也不同,需要具体分析,然后确定递归的尽头——递归出口,递归函数的核心语句就是这两点。在编写程序时只给出运算规律,具体实现细节应该让计算机去处理。读者千万不要钻到细节的实现上去,否则会陷入实现细节的泥沼中很难理出头绪。 ——《浙大C》P246
2020.11.29