顺序打印一个数的每一位
递归的方法求解
例如
打印1314的每一位
-
如果把print当作是打印一个数每一位的函数。那么打印1314,可以将其逐渐的将其拆分!
- print(1314)----------------->print(131) + 4
- print(131) + 4------------->print(13) + 1 + 4
- print(13) + 1 + 4---------->print(1) + 3 + 1 + 4
-
如果上述还是不够清楚的话,就用文字来叙述一遍。
- 打印1314相当于Print(131)和打印4
- 打印131相当于Print(13)和打印1
- 打印13就相当与Print(1)和打印3
限制条件
- Print()函数中的值必须时一个两位数,换句话说Print()函数中的只必须大于九。
- 每次递归调用之后,越来越接近上述1中的条件!
演示代码
#include <stdio.h>
void Print(int x)
{
if (x > 9)//限制条件
{
Print(x / 10);//每次递归调用后,都不断地接近这个条件
}
printf("%d ", x % 10);
}
int main()
{
unsigned int num = 0;
scanf("%u", &num);//输入的一个数
//打印函数
Print(num);//num是实参
return 0;
}