关于整除和取余在部分情况下的巧妙运用

本文介绍了如何使用递归方法将整数转换为字符串,通过整除和取余操作逐位提取数字。例如,将483转换为字符串"483"。在编程过程中,作者发现整数n/10会去掉最后一位,n%10则取出最后一位。通过不断递归,最终完整输出多位数。
摘要由CSDN通过智能技术生成

本想法是在总结今天所做实验的时候所产生的,题目如下:

用递归法将一个整数 n 转换成字符串,例如,输入483,应输出字符串“483”

本题的代码如下:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int print(int value)
{
    if (0 == value / 10)
    {
        printf("%d,", value);    
    }
    else
    {
        print(value/10);
        printf("%d ", value % 10);
}
int main()
{
    int k = 0;
    printf("请输入你要打印的整数:>");
    scanf("%d", &k);
    printf("\n");
    print(k);
    return 0;
}

  比如说我们要将5367转换成字符串,首先想到的最容易提取到的数是7,毕竟只要5367%10即可,那么接下来问题出现了,我该怎么提取6呢,5367%100吗?很遗憾得到的是67,所以已经求出来的7是我们导出6的最大障碍,那我们该怎么让他消失呢?经过讨论,我们发现只要让5367/10,即可变成536,536%10不就是6了吗?一次类推,536/10是53,53%10就是3,这样就能够依次把5367的各个字符给提取出来。这样的话我们用代码递归的方式写下来如下:

void P(int a)
{
	if (a / 10 =
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

生气的海绵

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

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

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

打赏作者

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

抵扣说明:

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

余额充值