7-3 逆序的三位数

该博客详细介绍了如何编写程序来逆序输出一个三位数,包括两种不同的实现版本:1.0和2.0。1.0版本通过除法和取余操作获取每一位数字,并处理末尾为0的特殊情况;2.0版本则直接利用位运算实现。解题思路清晰,代码简洁易懂,适用于初学者理解位操作和条件判断在编程中的应用。
摘要由CSDN通过智能技术生成

题目

程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。

题目链接:题目详情 - 7-3 逆序的三位数 (10 分) (pintia.cn)https://pintia.cn/problem-sets/14/problems/783

输入格式

每个测试是一个3位的正整数。

输出格式

输出按位逆序的数。

样例

输入样例

123

输出样例

321

解题思路

1.0版本

因为我们输入的数是连在一起的,所以无法单独获取,只能用别的办法。

于是我们可以除以一个数提取每位数的值。

百位: b=a/100;

十位: c=a/10; c=c%10;

个位: d=a%10;

三位数逆序后,其实就是百位变成了个位,十位不变,个位变成了百位,就可以输出了:

printf("%d%d%d",d,c,b);

此外,我们还需解决一个问题:

注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。

要解决这个问题也很简单,只需判断一下即可:

 if (d==0){
        if (c==0){
       printf("%d",b);
        }
        else
            printf("%d%d",c,b);
    }
    else
        printf("%d%d%d",d,c,b);

2.0版本

设输入的三位数为a,则其各个位的数字可以这样得到:

百位十位个位
a/100a/10%10a%100/10a%10

三位数逆序后,其实就是百位变成了个位,十位不变,个位变成了百位,即为:

a%10*100+a%100/10*10+a/100

然后打印出来就可以了。

源代码

1.0版本

#include<stdio.h>

int main()
{
    int a,b,c,d;
    scanf("%d",&a);
    b=a/100;
    c=a/10;
    c=c%10;
    d=a%10;
    if (d==0){
        if (c==0){
       printf("%d",b);
        }
        else
            printf("%d%d",c,b);
    }
    else
        printf("%d%d%d",d,c,b);
    return 0;
}

2.0版本

#include<stdio.h>

int main()
{
    int a;
    scanf("%d",&a);
    a=a%10*100+a%100/10*10+a/100;
    printf("%d",a);
    return 0;
}

!!!您的点赞和支持,是我更新的最大动力!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值