题目描述:要求实现把给定的一个整数取其相反数的功能,举两个例子如下: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;
}