您的位置:首页 > 其它

整数取反,人人code--英雄会

2013-12-20 21:03 204 查看
题目很简单,完成函数reverse,要求实现把给定的一个整数取其相反数的功能,

举两个例子如下:

x=123,return321 x=-123,return-321



如题,这题目很简单,就不跟小伙伴们废话了,在英雄会上判定也是一个一星的题而已,入门...



将一个整数按照我们的常规思路 不断取余,再舍弃尾数,这样录入得到各个位数的值,再将其反转,最后将之前是否有负号重新补上;

小小代码附上,请各位不吝赐教:

#include <stdio.h>
#include <stdlib.h>

int Reverse(int x)
{
    int i = 0, j = 0;
    char num[20] = {0};
    int Pos = 0;  //正负数标志
    int Rnum = x;  //操作数

    if(x < 0)  //负数
    {
        Rnum = -x;  //得到正数
        Pos = 1;  //负数标志
    }

    while(Rnum > 0)
    {
        num[i] = Rnum % 10;  //由尾数开头存入数组
        Rnum /= 10;  //舍弃尾数
        i++;
    }

    Rnum = 0;  //重新作为记录

    while(j < i)
    {
        Rnum = Rnum * 10 + num[j];  //反转
        j++;
    }

    if(1 == Pos)  //返回负号
        Rnum = -Rnum;
    return Rnum;
}

int main()
{
    int n = -123456789;
    printf("反转前:%d\n", n);
    printf("反转后:%d\n", Reverse(n));

    system("pause");
    return 0;
}





加了多余的说明只是为了更加清晰

工程:http://download.csdn.net/detail/xjm199/6747469

http://download.csdn.net/user/xjm199
后续有更加好的想法会补上



大神们有什么建议,可以提点一下...多多交流,3Q.......o(∩_∩)o 哈哈
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: