7.利用递归,逆序输出一个这个整数

题目:设计一个函数,将正整数参数n,由低位到高位倒序输出。

分析思路:

1.倒序输出一个整数,则需要给每一位上数字取下来。就需要定义个数组,存取这些数字。给数组首地址传函数,最后返回

2.因为最后需要输出数组内每一个数字,所以需要用到遍历输出,但需要知道有几位数字,因此需要定义个长度,求出长度。

3.递归思想,现在草稿内写下来逻辑思路,传进去数字.1.取数字2..更新数字3.数组位数更新,然后再重复操作,因此在第三步后,进行递归函数的使用,因为需要反复递归,所以需要一个结束条件,结束条件就是传进的数字,被出完,也就是每一位的数字被取进数组后。最后return 存每一位的数组指针。

代码如下:

#include <stdio.h>
void digui(int n)
{
	printf("%d ",n%10); //先输出,再进入递归,求模时,是输出的个位,例如 482 % 10 = 2;这样递归才算逆序输出。 
	if(n>0)
	digui(n/10);
	printf("%d ",n%10); //这个地方输出,则为正序输出,因为先进入递归,递归到最后一层时n为0,
}						//这时候从最后一层输出,n%10=0。然后它上一层输出,此时n为4,n%10 为4依次类推!  
int main()
{
	int n;
	scanf("%d",&n);
	digui(n);
}
  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 以下是Python代码实现: ``` def reverse_print(): num = int(input("请输入一个整数:")) if num == 0: return reverse_print() print(num) reverse_print() ``` 函数`reverse_print()`首先输入一个整数,如果输入的整数为0,则直接返回。否则,归调用`reverse_print()`函数,等待输入下一个整数。当输入的整数为0时,归结束,开始从最后一个输入的整数开始依次打印输出。 ### 回答2: 归函数是一种在函数内部调用自身的方法,实现归的过程一般需要定义归函数的终止条件和归调用的过程。现在我们需要编写一个归函数,将输入的整数以相反的顺打印出来,整数为0时终止输入。具体方法如下: 1. 定义归函数reverse_print(n),其中n为输入的整数。 2. 设定归函数的终止条件,当n等于0时,直接返回。 3. 在归函数中调用自身,将输入的整数除以10取整作为参数传归函数,并在归函数返回后打印该整数的个位数。 4. 最后在主函数中调用归函数,将输入的整数作为参数传给reverse_print函数。 具体实现代码如下: ``` #include <iostream> using namespace std; void reverse_print(int n) { if (n == 0) // 终止条件 return; reverse_print(n / 10); // 归调用 cout << n % 10; // 打印个位数 } int main() { int n; cin >> n; reverse_print(n); return 0; } ``` 例如,当输入整数1234时,将输出4321。这是因为首先调用reverse_print(1234),然后将1234/10=123作为参数传给自身,再将123/10=12作为参数传给自身,最后将12/10=1作为参数传给自身。当n等于0时,归结束,倒输出个位数4、3、2、1。 ### 回答3: 归是一种以自相似的方式进行的函数重复调用,通常是在问题可以被分解为更小的自相似子问题时适用的一种编程技巧。在编写归函数来反向打印输入的整数时,可以按以下步骤进行: 1.编写一个函数,使用归来实现反向打印输入的整数。该函数接受一个整数参数,用于存储输入的整数。 2.在归函数中,如果输入的整数为0,则不执行任何操作,结束归。 3.如果输入的整数不为0,则归调用该函数,并将输入的整数除以10(去掉最低位),作为子问题的参数。 4.在归函数返回时,打印输入的整数的最低位。 代码如下: ```python def print_reverse_num(num): if num == 0: return else: print_reverse_num(num // 10) print(num % 10) ``` 该函数首先检查输入的整数是否为0。如果是,则立即返回。否则,它会归调用自己,将输入的整数除以10(去掉最低位),然后将结果作为参数传给子函数。当子函数返回时,归函数将打印输入的整数的最低位。由于归函数将继续运行,直到输入的整数为0为止,因此整数将以相反顺打印出来。 例如,在调用`print_reverse_num(1234)`时,输出将为: ``` 4 3 2 1 ``` 这是因为归函数首先将自己调用四次,并依次传参数123、12、1和0。当输入参数为0时,归终止,最后一次调用函数返回,并打印出输入整数的最低位4。然后上一次调用函数返回,并打印出输入整数的下一个最低位3,以此类推。最后,整数以相反顺打印出来。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奔心小韩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值