CSDN之人人code,整数取反

来源:互联网 发布:天敏网络机顶盒无信号 编辑:程序博客网 时间:2024/05/01 13:37

题目描述:要求实现把给定的一个整数取其相反数的功能,举两个例子如下:x = 123, return 321 x = -123, return -321;

     解题思路:对int a进行判断,如果a的大小不等于0;则定义一个变量temp等于temp*10+a的最后一位,a = a/10;依次循环。。。代码如下

     

我的代码如下:

#include <iostream>using namespace std;int reverse(int x) {    //wirte your code here    int ix = x > 0 ? x : -x ;        int flag = 0 ;    if (ix != x)        flag = 1 ; // 表示x为负数        int iy = 0;    while (ix > 0){        iy *= 10 ;        iy += ix % 10  ;        ix /= 10 ;    }    if (flag == 1)        iy = -iy ;    return iy ;    }//start 提示:自动阅卷起始唯一标识,请勿删除或增加。int main(){       cout << reverse(897) << endl;    return 0;} //end //提示:自动阅卷结束唯一标识,请勿删除或增加。        

     一开始不知道余数和被除数的符号相同,使用了问号表达式,还用了一个标志位来标记是否为负数,其实没必要,下面是代码转载的别人的博客:点击打开链接

整个代码看起来简单明了:

#include<stdio.h>    int fun(int a)  {      int temp = 0;      while(a)      {          temp = temp*10 + a%10;          a = a / 10;      }      return temp;  }  int main()  {      int num;      printf("Input a num:");      scanf("%d",&num);      printf("The result is:%d",fun(num));      return 1;  }  

0 0
原创粉丝点击