循环结构2(while)——数字反转

任务描述
编写一个程序,将给定整数的各个位上数字反转,得到一个新的整数。新数应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零。

输入输出要求
输入: 一个整数 N。
输出: 一个整数,表示反转后的新数。

代码实现
cpp
#include <stdio.h>
#include <limits.h>

int reverseInteger(int x) {
    int reversed = 0;
    int isNegative = x < 0;
    unsigned int ux = isNegative ? -x : x;
    while (ux != 0) {
        int pop = ux % 10;
        ux /= 10;
        if (reversed > INT_MAX / 10 || (reversed == INT_MAX / 10 &amp;&amp; pop > INT_MAX % 10)) {
            return 0;
        }
        reversed = reversed * 10 + pop;
    }
    return isNegative ? -reversed : reversed;
}

int main() {
    int n;
    scanf(&quot;%d&quot;, &amp;n);
    int reversed = reverseInteger(n);
    if (reversed == 0) {
        printf(&quot;-&quot;);
    } else {
        printf(&quot;%d\n&quot;, reversed);
    }
    return 0;
}

总结
本次编程任务顺利完成,代码实现了数字反转的功能,并考虑了整数溢出的问题。通过这次练习,我加深了对整数操作和边界条件处理的理解。同时,我也意识到在编写代码时,清晰的逻辑和良好的代码风格是非常重要的。
全部评论

相关推荐

05-19 19:57
蚌埠学院 Python
2237:Gpa70不算高,建议只写排名,个人技能不在多而在精,缩到8条以内。项目留一个含金量高的,减少间距弄到一页,硕士简历也就一页,本科不要写很多
点赞 评论 收藏
分享
06-02 15:17
门头沟学院 Java
心爱的idea:怎么会呢 应该是打招呼有问题 问就说实习6个月全国可飞随时到岗
点赞 评论 收藏
分享
昨天 19:00
门头沟学院 golang
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务