0
点赞
收藏
分享

微信扫一扫

顺序打印一个数的每一位

年夜雪 2022-04-23 阅读 62

顺序打印一个数的每一位

递归的方法求解

例如

打印1314的每一位

  • 如果把print当作是打印一个数每一位的函数。那么打印1314,可以将其逐渐的将其拆分!

    1. print(1314)----------------->print(131) + 4
    2. print(131) + 4------------->print(13) + 1 + 4
    3. print(13) + 1 + 4---------->print(1) + 3 + 1 + 4
  • 如果上述还是不够清楚的话,就用文字来叙述一遍。

    • 打印1314相当于Print(131)和打印4
    • 打印131相当于Print(13)和打印1
    • 打印13就相当与Print(1)和打印3

限制条件

  1. Print()函数中的值必须时一个两位数,换句话说Print()函数中的只必须大于九。
  2. 每次递归调用之后,越来越接近上述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;
}

递归的逻辑演示

在这里插入图片描述

举报

相关推荐

递归按顺序打印一个数

0 条评论