(弟弟14)递归•按顺序打印一个整数的每一位

2024-04-15 23:52

本文主要是介绍(弟弟14)递归•按顺序打印一个整数的每一位,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这里是目录哦

  • 题目
  • 代码
  • 运行截图
  • 递归思路
  • 递归停止条件
  • 如何实现“按顺序”
  • 悟了✨
  • 加油🎉

题目

按顺序打印一个整数的每一位。

代码

#include<stdio.h>
void Print(int n)
{if (n > 9)//递归停止条件{Print(n / 10);//不断趋近递归停止条件}printf("%d ", n % 10);
}
int main()
{int m = 0;scanf("%d", &m);Print(m);return 0;
}

运行截图

在这里插入图片描述

递归思路

以m=198为例:
在这里插入图片描述

递归停止条件

可以发现,if (n > 9)//递归停止条件Print(n / 10);//不断趋近递归停止条件都含有同一个字母n。通过控制那个相同的字母逐渐符合“停止条件”,来控制递归函数的停止。

更多递归练习和理解,可参考(这不是很难的题,你可以懂):
(弟)递归•斐波那契数、n的k次方

如何实现“按顺序”

以m=198为例:
Print函数中的printf("%d ", n % 10);只有被/到只剩一位数的1才能打印。其他的都会因为进入if而进入不断的递归,直到打印了1以后才往回走。所以可以实现按顺序打印。

悟了✨

其实递归不要想得太复杂,只要是不断使用同一个函数,就可以考虑递归,除非有明显的缺陷。所谓的缺陷就是“递归反而会让程序更麻烦”的情况。

一个问题直接求解时不好求解,如果可以将其划分成其子问题,并且子问题和原问题有相同的解法时,就可以使用递归的方式解决。

决定使用递归后,只需要基于你的目的,考虑开头第几个递归函数的执行思路就可以了【给自己举简单的具体例子帮助理解】,因为其余都一样。比如,你要按顺序打印,那就会想到用n % 10,只有当n是个一位数时,才可以打印出n。那就是说,10以及大于10的都不可以打印,即if (n > 9)无法实现目的的就放进递归

递归中一般要用if,因为要写递归停止条件。并且递归函数中最后执行的一定是停止条件情况下的操作。

加油🎉

所有值得做的事,都值得把它做好。
你又向目标迈进了哦!

❤️❤️❤️恭喜! 恭喜! 又收了一名小弟! ❤️❤️❤️

这篇关于(弟弟14)递归•按顺序打印一个整数的每一位的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/907273

相关文章

深度解析Python中递归下降解析器的原理与实现

《深度解析Python中递归下降解析器的原理与实现》在编译器设计、配置文件处理和数据转换领域,递归下降解析器是最常用且最直观的解析技术,本文将详细介绍递归下降解析器的原理与实现,感兴趣的小伙伴可以跟随... 目录引言:解析器的核心价值一、递归下降解析器基础1.1 核心概念解析1.2 基本架构二、简单算术表达

python 线程池顺序执行的方法实现

《python线程池顺序执行的方法实现》在Python中,线程池默认是并发执行任务的,但若需要实现任务的顺序执行,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋... 目录方案一:强制单线程(伪顺序执行)方案二:按提交顺序获取结果方案三:任务间依赖控制方案四:队列顺序消

Python lambda函数(匿名函数)、参数类型与递归全解析

《Pythonlambda函数(匿名函数)、参数类型与递归全解析》本文详解Python中lambda匿名函数、灵活参数类型和递归函数三大进阶特性,分别介绍其定义、应用场景及注意事项,助力编写简洁高效... 目录一、lambda 匿名函数:简洁的单行函数1. lambda 的定义与基本用法2. lambda

Spring Bean初始化及@PostConstruc执行顺序示例详解

《SpringBean初始化及@PostConstruc执行顺序示例详解》本文给大家介绍SpringBean初始化及@PostConstruc执行顺序,本文通过实例代码给大家介绍的非常详细,对大家的... 目录1. Bean初始化执行顺序2. 成员变量初始化顺序2.1 普通Java类(非Spring环境)(

Java实现预览与打印功能详解

《Java实现预览与打印功能详解》在Java中,打印功能主要依赖java.awt.print包,该包提供了与打印相关的一些关键类,比如PrinterJob和PageFormat,它们构成... 目录Java 打印系统概述打印预览与设置使用 PageFormat 和 PrinterJob 类设置页面格式与纸张

浅析Spring如何控制Bean的加载顺序

《浅析Spring如何控制Bean的加载顺序》在大多数情况下,我们不需要手动控制Bean的加载顺序,因为Spring的IoC容器足够智能,但在某些特殊场景下,这种隐式的依赖关系可能不存在,下面我们就来... 目录核心原则:依赖驱动加载手动控制 Bean 加载顺序的方法方法 1:使用@DependsOn(最直

Spring如何使用注解@DependsOn控制Bean加载顺序

《Spring如何使用注解@DependsOn控制Bean加载顺序》:本文主要介绍Spring如何使用注解@DependsOn控制Bean加载顺序,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录1.javascript 前言2. 代码实现总结1. 前言默认情况下,Spring加载Bean的顺

Python打印对象所有属性和值的方法小结

《Python打印对象所有属性和值的方法小结》在Python开发过程中,调试代码时经常需要查看对象的当前状态,也就是对象的所有属性和对应的值,然而,Python并没有像PHP的print_r那样直接提... 目录python中打印对象所有属性和值的方法实现步骤1. 使用vars()和pprint()2. 使

Java中JSON格式反序列化为Map且保证存取顺序一致的问题

《Java中JSON格式反序列化为Map且保证存取顺序一致的问题》:本文主要介绍Java中JSON格式反序列化为Map且保证存取顺序一致的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未... 目录背景问题解决方法总结背景做项目涉及两个微服务之间传数据时,需要提供方将Map类型的数据序列化为co

MySQL中SQL的执行顺序详解

《MySQL中SQL的执行顺序详解》:本文主要介绍MySQL中SQL的执行顺序,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql中SQL的执行顺序SQL执行顺序MySQL的执行顺序SELECT语句定义SELECT语句执行顺序总结MySQL中SQL的执行顺序