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

题目很简单,完成函数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 哈哈

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值