説明
32ビット符号付き整数、整数の逆の数字を与えられました。
、あなたはそれぞれ反転でこの整数を32ビット符号付き整数必要与える
我々は、32ビット符号付き整数、[-231、231のその値の範囲を格納することができる環境があるとし--1]。整数オーバーフローの後、それは0を返し、逆ならば、この仮説によるとしてください。
例
のアイデア
++、Pythonはモジュロ%シンボル、パイソン、同じCではないですので、C ++はモジュロです。%Aは負の数、及びモジュロ剰余異なります。だから、正と負のポイントへのpythonは、C ++に直接従事する
答え
- パイソン
def reverse(self, x: int) -> int:
MAX = 2**31-1
MIN = -2**31
num=0
flag = 1
if x<0:
flag = -1
x=-1*x
while x:#到0了就结束
num=num*10+x%10
x = int(x/10)
num = num*flag
return 0 if num>MAX or num<MIN else num
- C ++
int reverse(int x) {
long num=0;//可能会超过范围,所以为Long
while (x)//x可为正或负,知道为0
{
num = num*10+x%10;
x /= 10;
}
return (num>INT_MAX || num<INT_MIN)? 0: num;
}