C语言刷题系列——6.(递归)实现顺序输出整数

news2024/10/3 0:28:40

递归实现顺序输出整数

  • ❄️一) 题目要求
    • ☃️1.函数接口定义:
    • ☃️2.裁判测试程序样例:
  • ❄️二) 非递归 解法
    • ☃️step1.统计位数
    • ☃️step2.循环,打印每一位
    • ☃️step3.实现
  • ❄️三) 递归 解法
    • ☃️step1.分析
    • ☃️step2.图解流程
    • ☃️step3.实现

)

❄️一) 题目要求

☃️1.函数接口定义:

void printdigits( int n );

函数printdigits应将n的每一位数字从高位到低位顺序打印出来,每位数字占一行。
在这里插入图片描述

☃️2.裁判测试程序样例:

#include <stdio.h>

void printdigits( int n );
int main()
{
    int n;
    scanf("%d", &n);
    printdigits(n);
    return 0;
}

/* 你的代码将被嵌在这里 */

❄️二) 非递归 解法

☃️step1.统计位数

☃️step2.循环,打印每一位

☃️step3.实现

void printdigits(int n)
{
    int i = n,c=n;
    int count = 1;
    while (i /= 10)
    {
        count++;
    }//统计位数
    
    for(int j = count;j>=1;j--)
    {
       c=n;
       for(i = 0;i<j-1;i++)
       {
          c /= 10;
       }
       c%=10;
       printf("%d\n",c);
    }
}

❄️三) 递归 解法

☃️step1.分析

输入一个数(比如12345),想要打印出每一位,可以拆解成:
先打印1,再用函数printdigits()对2345执行相同的操作
打印2,再用函数printdigits()对345执行相同的操作
打印3,再用函数printdigits()对45执行相同的操作
打印4,再用函数printdigits()直接打印最后一位5即可

☃️step2.图解流程

把step1倒过来看,
当递归到最后n<10的时候,直接打印出即可

由于要顺序打印(从高位向低位依次输出每一位数)

printdigits()括号里放n/10,使得每递归一次(从低位)少一位

在这里插入图片描述

☃️step3.实现

void printdigits(int n) 
{
    if (n < 10)
        printf("%d\n", n);
    else
    {
        printdigits(n / 10);
        printf("%d\n", n % 10);
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/54228.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

举个栗子~Tableau 技巧(245):用辅助标识快速查看标靶图

我们经常会使用 标靶图&#xff08;靶心图&#xff09;来参照目标评估指标的表现。例如&#xff1a;销售配额评估、实际花费与预算的比较情况、绩效优劣范围&#xff08; 优/良/差&#xff09;等等。 指标不多的情况&#xff0c;标靶图其实是较直观的。但如果指标很多&#xf…

面试官:请问如何提升TCP三次握手的性能?

本文主要分享在 Linux 操作系统下&#xff0c;如何优化 TCP 的三次握手流程&#xff0c;提升握手速度。 TCP 是一个可以双向传输的全双工协议&#xff0c;所以需要经过三次握手才能建立连接。三次握手在一个 HTTP 请求中的平均时间占比在 10% 以上&#xff0c;在网络状况不佳、…

请问财务管理的作用有哪些?

财务管理作为企业管理的一个重要组成部分&#xff0c;如何在当前企业经营方式转变过程中发挥出更大的作用&#xff0c;如何进一步促进财务管理理论和方法的改革与发展&#xff0c;从而使财务管理更具有适应性和有效性&#xff0c;是企业管理理论与实务工作者一个共同关心的话题…

常用数据结构 ——— 队列(环形队列和顺序队列)

目录 一、队列简介 二、顺序队列 三、环形队列 四、环形队列代码 1、队列结构体 2、队列初始化 3、判断队列是否为满 4、判断队列是否为空 5、将数据插入到队列中 6、读取队列中的数据 7、释放队列空间 8、功能测试 一、队列简介 队列只允许在队列头&#xff08;fr…

_Linux(共享内存)

文章目录0. 共享内存1. 共享内存示意图2. 共享内存函数2.1 shmget函数2.2 shmat函数2.3 shmdt函数2.4 shmctl函数2.5 查看共享内存指令2.6 删除共享方法2.6.1 指令删除2.6.2 代码删除3. 实例代码3.0 log.hpp打印日志信息3.1 comm.hpp(shmServer.cc和shmClicent.cc共有文件)3.2 …

Java 17的这些新特性,Java迈入新时代

前言 2021年9月14日Java 17发布&#xff0c;作为新时代的农民工&#xff0c;有必要了解一下都有哪些新东西。 Java 17是Java 11以来又一个LTS&#xff08;长期支持&#xff09;版本&#xff0c;Java 11 和Java 17之间发生了那些变化可以在OpenJDK官网找到JEP&#xff08;Java…

Unity中用Natrue Renderer做自己的地形Terrain.

效果图 一、下载与导入Nature Renderer Nature Renrderer是个强大的插件&#xff0c;它本身就可以作为地形编辑的工具取代Unity的地形细节和树木的渲染系统。 nature-renderer官网 1.下载链接 推荐&#xff08;已经购买的许可证&#xff0c;可直接使用&#xff09;&#xf…

设计原则和设计模式01

一&#xff1a;软件设计原则 1.单一职责原则&#xff1a; 有且只有一个原因引起类的变化(类或者接口的职责单一化) 2.里氏替换原则&#xff1a; 子类可以扩展父类的功能,但不能改变父类原有的功能 3.依赖倒置原则&#xff1a; 1.高层模块不应该依赖于底层模块&#xff0c…

Java注解

Java注解&#xff08;Annotation&#xff09; Java 注解&#xff08;Annotation&#xff09;又称 Java 标注&#xff0c;是 JDK5.0 引入的一种注释机制。 注解也叫元数据&#xff0c;一种代码级别的说明&#xff0c;说明程序的是给计算机看的&#xff0c;与类&#xff0c;接口…

事件绑定(onsubmit)表单提交

事件绑定(onsubmit)表单提交 学习路线&#xff1a;JavaScript基础语法&#xff08;输出语句&#xff09;->JavaScript基础语法&#xff08;变量&#xff09;->JavaScript基础语法&#xff08;数据类型&#xff09;->JavaScript基础语法&#xff08;运算符&#xff09…

Python笔记 · Python语言的“动态性”

尽管对于Python程序员来说已经司空见惯&#xff0c;但是当那些从非动态语言转过来的程序员初次看到形如self.xxxxxx的语句就是在定义对象属性时往往会感到“离奇”&#xff1a;一个未经声明的&#xff08;类似private int a;那样&#xff09;变量&#xff0c;直接从self中“点”…

java知识回顾笔记(对象、反射、内省、实例、父类、构造方法、封装、泛型、super())

类&对象 在创建了一个类时&#xff0c;只声明但不赋值&#xff0c;其默认值为&#xff1a; 理解下图含义&#xff0c;即可理解对象和类&#xff1a; 实例 对象又被称为实例&#xff0c;实例变量被创建时&#xff0c;系统默认会赋值&#xff0c;例如&#xff1a; Studen…

什么知识库工具适合小团队?看看文档管理系统+NAS的最新解决方案

编者按&#xff1a;还在为团队选那款网盘而发愁吗?试试文档管理系统和NAS结合吧&#xff0c;高效率低成本&#xff0c;适合小团队。 关键词&#xff1a;免维护&#xff0c;免安装&#xff0c;大容量&#xff0c;在线编辑&#xff0c;文档共享&#xff0c;数据安全 对于企业或…

LeetCode-66-加一

1、从后向前遍历 我们可以从后向前遍历数组&#xff0c;针对不同的情况进行操作&#xff1a;1、若当前数字不为9&#xff0c;则我们直接将数字的值加一并返回即可&#xff1b;2、若当前数字为9&#xff0c;我们将当前数字置为0并对前一位执行加一操作&#xff1b;3、若所有数字…

后端接口时通时不通,团队全链路排查实战

背景&#xff1a; 1 最近团队做了一套系统&#xff0c;已经临近上线了&#xff1b; 2 后端的服务和前端的代码都是新写的&#xff0c;两边的服务器&#xff0c;数据库也都是新申请的&#xff1b; 3 本来测试的时候用的测试服务器&#xff0c;一切都挺好的&#xff0c;但部署到线…

基于分发与计算的GRTN全球实时传输网络

一张能同时满足「分发」与「计算」需求的网。 从直播趋势看「分发」与「计算」 阿里云直播产品架构图中&#xff0c;主要分为端和云两个部分&#xff1a;在端侧&#xff0c;主要包含推流端和播放端&#xff1b;在云侧&#xff0c;一是基于分布式节点构建的传输网&#xff0c;二…

mosquitto部署mqtt broker 并测试订阅与发布

mosquitto部署mqtt broker 并测试订阅与发布 1&#xff0c;MQTT协议介绍 MQTT(消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它工作在 TCP/IP协议族上&#xff0c;是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型…

如何使用phpstudy在服务器上发布Discuz_X3.4_SC_UTF8_20220811和zzcms2023

Web-ZZCMS&#xff1a; 源码下载&#xff1a;http://www.zzcms.net/about/6.html Web-Discuz&#xff1a; 源码下载&#xff1a;https://www.discuz.net/ 首先安装phpstudy&#xff0c;傻瓜式安装教程&#xff0c;如果中途 遇到报错比如我遇到的是Apache未启动&#xff0c;80端…

Ansible自动化部署安装openGauss3.1企业版单机

文章目录一、背景二、环境准备三、具体实施步骤3.1、安装ansible3.2、配置主机清单3.3、测试主机连通性3.4、创建相关目录3.5、下载openGauss软件包到files目录3.6、创建变量文件3.7、创建安装时需要的xml模板3.8、创建任务文件四、执行自动化安装4.1、校验语法4.2、自动化安装…

CAD新手必练图形三

这次说的这个CAD新手必练图形&#xff0c;用到了CAD直线、圆、多边形、修剪和旋转等多个CAD功能命令&#xff0c;一起跟着操作一下吧 目标图形 操作步骤 1.使用CAD直线命令绘制一条垂直的直线和两条水平的直线&#xff0c;两条水平的直线之间的距离为15&#xff0c;并将他们修…