首页 > 其他分享 >将一位数的每一位逆序输出

将一位数的每一位逆序输出

时间:2023-03-28 22:44:46浏览次数:34  
标签:输出 inversion 10 int void 一位 一位数 逆序

将一个数的每一位逆序输出

首先需要一个变量来存储这个数

int n;
scanf("%d", &n);

然后要得到这个数的每一位,
而且要先输出个位,然后输出十位,然后输出百位……
我们考虑使用循环,

int i;
for (i = 1; i <= n; i *= 10)
    printf("%d ", n / i % 10);

把i的初值定为1
然后进入第一次循环,也就是n / 1 % 10,也就是n % 10,得到个位,
第二次循环n / 10 % 10可以得到十位,因为整型数据之间相除结果向下取整,
假如n是123,则 123 / 10之后的结果是12,然后用12 % 10就可以得到十位2了,
第三次循环求得百位
……
然后以此类推,一直到最位。

综上所述

#include <stdio.h>

int main(void)
{
    int n;
    scanf("%d", &n);
    
    int i;
    for (i = 1; i <= n; i *= 10)
        printf("%d ", n / i % 10);      //第一次得到个位,第二次得到十位,第三次得到百位……

    return 0;
}

也可以使用递归的方法来解决这个问题

void inversion(int n)
{
    if (n != 0)         //n一直除以10,直到为0时不满足条件。
    {
        printf("%d", n % 10);   //得到数的最后一位
        inversion(n / 10);      //每次让n/10,然后n%10得到最后一位
    }
    else
        return;
}

#include <stdio.h>
void inversion(int n);

int main(void)
{
    int n;
    scanf("%d", &n);
    inversion(n);

    return 0;
}

void inversion(int n)
{
    if (n != 0)         //n一直除以10,直到为0时不满足条件。
    {
        printf("%d", n % 10);   //得到数的最后一位
        inversion(n / 10);      //每次让n/10,然后n%10得到最后一位
    }
    else
        return;
}

递归过程简要分析
分析

标签:输出,inversion,10,int,void,一位,一位数,逆序
From: https://www.cnblogs.com/codels/p/17267062.html

相关文章