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

这篇具有很好参考价值的文章主要介绍了C语言刷题系列——6.(递归)实现顺序输出整数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


)

❄️一) 题目要求

☃️1.函数接口定义:

void printdigits( int n );

函数printdigits应将n的每一位数字从高位到低位顺序打印出来,每位数字占一行。
6-6 递归实现顺序输出整数,c语言,算法,c++,学习,开发语言

☃️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,使得每递归一次(从低位)少一位

6-6 递归实现顺序输出整数,c语言,算法,c++,学习,开发语言文章来源地址https://www.toymoban.com/news/detail-782634.html

☃️step3.实现

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

到了这里,关于C语言刷题系列——6.(递归)实现顺序输出整数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C语言递归算法实现经典例题

    递归是一种编程技术,它通过在函数内部反复调用自身来解决问题。当一个程序调用自己时,这就称为递归调用。递归可以有助于简化某些算法的实现和理解。在递归过程中,每个调用都会将一些数据保存在栈上,直到递归结束后才能被处理并弹出栈。 递归通常有两个部分:

    2024年02月05日
    浏览(54)
  • 汉诺塔——递归算法(c语言实现)

    每日一题   文章目录   汉诺塔 问题 : 一、递归算法 二、解决汉诺塔问题 1.找规律,确定思路 2.代码实现 总结          1.有三根杆(编号A、B、C)      2. 在A杆自下而上、由大到小按顺序放置n个金盘      3.把A杆上的金盘全部移到C杆上,并仍保持原有顺序叠好。 操作规则

    2024年02月10日
    浏览(43)
  • 逆序输出整数【C语言】

    要求输入任意一整数,把这个整数以逆序的方式输出。 1 输入:123 2 输出:321     我们可以发现,输入数和输出数的位数相同,输入数的1在输出数中作为个位数 输出。 也就是说整数逆序本质上是数位的颠倒 所以我们只需要判断输入数是几位数,然后获取输入数各数位的值

    2024年02月06日
    浏览(38)
  • c语言——输出一个整数的所有因数

      当对这段代码进行分块分析时,可以将其分为以下几个部分: 第一部分: 这部分代码包含了头文件 stdio.h 和 stdlib.h 的引入以及 main() 函数的定义。定义了一个整型变量 number ,用于存储用户输入的整数。还定义了一个整型变量 i ,用于循环计数。 通过 printf 函数打印出提示

    2024年02月12日
    浏览(38)
  • 二叉树中序遍历非递归算法C语言实现

    // //  Inordertraverse.c //  二叉树链式存储 // //  Created by 丘** on 2021/7/28. // #include \\\"Inordertraverse.h\\\" #include stdbool.h #includestdlib.h typedef   struct StackNode {     int data;     struct StackNode* next;      }StackNode; typedef struct BiTNode {     int data;     struct BiTNode* lchild,* rchild;           }BiTnode

    2024年02月02日
    浏览(36)
  • 【C语言】中,输入一个数组,实现将输入的n个数字按照从大到小的顺序输出。【通俗简单易懂】

    本篇文章中,我们将讲述在C语言中,输入一个数组,如何用for循环实现将输入的n个数字按照从大到小输出。 首先,我们定义一个整形的数组并将其初始化。输入n,来决定数组中整数的个数。 然后用for循环来输入这个数组中的各个数字。 接下来,就是对这个数组中的数字进

    2024年02月08日
    浏览(46)
  • 实际问题中用到的算法——递归算法确定插帧顺序

    现在需要给一个视频序列插帧,插帧算法要求每次只能由两帧输入插值得到其中间帧。如果现在需要给一个视频做 4 倍(或者更高的 8,16 倍等类似)的插帧,则一个插帧的思路是当前视频每相邻帧之间插入 3 帧,即:假设插帧前视频帧序号是 0,4,8,12… ,则插帧时补充相邻帧跨

    2023年04月18日
    浏览(43)
  • 【C语言】中,输入一个数组,用for循环实现将输入的n个数字按照从大到小的顺序输出。【通俗简单易懂】

    本篇文章中,我们将讲述在C语言中,输入一个数组,如何用for循环实现将输入的n个数字按照从大到小输出。 首先,我们定义一个整形的数组并将其初始化。输入n,来决定数组中整数的个数。 然后用for循环来输入这个数组中的各个数字。 接下来,就是对这个数组中的数字进

    2023年04月16日
    浏览(35)
  • 掌握Go语言:探索Go语言递归函数的高级奥秘,优化性能、实现并发、解决算法难题(28)

    递归函数在Go语言中是一种强大的工具,能够解决许多复杂的问题。除了基本的递归用法外,Go语言还提供了一些高级用法,使得递归函数更加灵活和强大。本文将深入探讨Go语言递归函数的高级用法,包括尾递归优化、并发递归和记忆化递归等。 尾递归优化 尾递归是一种特

    2024年04月10日
    浏览(50)
  • C语言实例:输出八进制,十进制,十六进制,指定位数整数,带符号整数,科学计数法表示的整数

    直接使用printf函数输出整数即可,例如: 输出结果为: %d是printf函数的格式控制符,用于输出整数。在printf函数中,%d会被替换成一个整数变量的值。例如,printf(“%d”, num)中%d将被num的值替换,从而输出num的值作为整数。 使用printf函数的格式控制符可以输出指定位数的整数

    2024年02月08日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包