(弟弟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

相关文章

C语言函数递归实际应用举例详解

《C语言函数递归实际应用举例详解》程序调用自身的编程技巧称为递归,递归做为一种算法在程序设计语言中广泛应用,:本文主要介绍C语言函数递归实际应用举例的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录前言一、递归的概念与思想二、递归的限制条件 三、递归的实际应用举例(一)求 n 的阶乘(二)顺序打印

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

使用C语言实现交换整数的奇数位和偶数位

《使用C语言实现交换整数的奇数位和偶数位》在C语言中,要交换一个整数的二进制位中的奇数位和偶数位,重点需要理解位操作,当我们谈论二进制位的奇数位和偶数位时,我们是指从右到左数的位置,本文给大家介绍了使... 目录一、问题描述二、解决思路三、函数实现四、宏实现五、总结一、问题描述使用C语言代码实现:将一个整

Jackson库进行JSON 序列化时遇到了无限递归(Infinite Recursion)的问题及解决方案

《Jackson库进行JSON序列化时遇到了无限递归(InfiniteRecursion)的问题及解决方案》使用Jackson库进行JSON序列化时遇到了无限递归(InfiniteRecursi... 目录解决方案‌1. 使用 @jsonIgnore 忽略一个方向的引用2. 使用 @JsonManagedR

Rust中的BoxT之堆上的数据与递归类型详解

《Rust中的BoxT之堆上的数据与递归类型详解》本文介绍了Rust中的BoxT类型,包括其在堆与栈之间的内存分配,性能优势,以及如何利用BoxT来实现递归类型和处理大小未知类型,通过BoxT,Rus... 目录1. Box<T> 的基础知识1.1 堆与栈的分工1.2 性能优势2.1 递归类型的问题2.2

Python中顺序结构和循环结构示例代码

《Python中顺序结构和循环结构示例代码》:本文主要介绍Python中的条件语句和循环语句,条件语句用于根据条件执行不同的代码块,循环语句用于重复执行一段代码,文章还详细说明了range函数的使... 目录一、条件语句(1)条件语句的定义(2)条件语句的语法(a)单分支 if(b)双分支 if-else(

关于Spring @Bean 相同加载顺序不同结果不同的问题记录

《关于Spring@Bean相同加载顺序不同结果不同的问题记录》本文主要探讨了在Spring5.1.3.RELEASE版本下,当有两个全注解类定义相同类型的Bean时,由于加载顺序不同,最终生成的... 目录问题说明测试输出1测试输出2@Bean注解的BeanDefiChina编程nition加入时机总结问题说明

C++实现封装的顺序表的操作与实践

《C++实现封装的顺序表的操作与实践》在程序设计中,顺序表是一种常见的线性数据结构,通常用于存储具有固定顺序的元素,与链表不同,顺序表中的元素是连续存储的,因此访问速度较快,但插入和删除操作的效率可能... 目录一、顺序表的基本概念二、顺序表类的设计1. 顺序表类的成员变量2. 构造函数和析构函数三、顺序表

JAVA利用顺序表实现“杨辉三角”的思路及代码示例

《JAVA利用顺序表实现“杨辉三角”的思路及代码示例》杨辉三角形是中国古代数学的杰出研究成果之一,是我国北宋数学家贾宪于1050年首先发现并使用的,:本文主要介绍JAVA利用顺序表实现杨辉三角的思... 目录一:“杨辉三角”题目链接二:题解代码:三:题解思路:总结一:“杨辉三角”题目链接题目链接:点击这里

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测