资讯 小学 初中 高中 语言 会计职称 学历提升 法考 计算机考试 医护考试 建工考试 教育百科
栏目分类:
子分类:
返回
空麓网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
空麓网 > 计算机考试 > 软件开发 > 后端开发 > C/C++/C#

C语言-递归法将一个数字转换成字符串

C/C++/C# 更新时间: 发布时间: 计算机考试归档 最新发布

C语言-递归法将一个数字转换成字符串

        

任务描述

本关任务:用递归法将一个整数 n (任意位数的整数)转换成字符串,并输出,各个字符之间用空格隔开。

例如,输入483,应输出字符串4 8 3。

测试输入:123456789 预期输出:1 2 3 4 5 6 7 8 9

测试输入:-1314520 预期输出:- 1 3 1 4 5 2 0

  递归法是C语言中重点。我对递归理解就是将1个问题不断分解成小问题求解。比如说求10的阶乘,10!就可以分解为10*9!,10*9*8!...到10*9*8*...1!,1的阶乘就是1,再返回到2!,3!,4!...10!。如图解:

         

 

现在看一下这个题,将数字一个一个分开打印,第一个、第二个、第三个...,这样的问题就可以分解为第一个加剩下的数字,不断分解剩下的数字,直到最后一个数字。比如1234,就可以分解为打印1 (234),再分解成1 2 (34),1 2 3 (4)。注意是先打印前面的数字,后打印后面数字。假如我们想先打印后面数字,这是比较容易的%10得到最后数字,那么前面数字呢?1234得到1就是1234/1000=1234/10/10/10,看到这里相信大家也有思路了吧,可以用循环来/10得到前面数字,当然如果在递归里面就不用循环了。这样循环就是1234-123-12-1,递归返回就变成打印1,打印12%10,打印123%10,打印1234%10

         递归函数就是在函数内间接或直接调用本身函数,其每次返回值或打印值时都会返回到上一次调用的地方,在上面就会返回到figureTrasform(i)下面的printf语句,就不会再次判断执行if,这是我之前知识错点,在这里和大家辨清一下。我还是新手,逻辑还不够清楚,请见谅。

 

转载请注明:文章转载自 http://www.konglu.com/
本文地址:http://www.konglu.com/it/511103.html
免责声明:

我们致力于保护作者版权,注重分享,被刊用文章【C语言-递归法将一个数字转换成字符串】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2023 成都空麓科技有限公司

ICP备案号:蜀ICP备2023000828号-2