//#include <iostream> #include <cmath> #include <stack> //using namespace std; //const int MAXN=10; //int Stack[MAXN]; stack<int> s; class Solution { public: int getNumber(int x) { //int lengthOfStack=0; //int i=0; while(x) { //cout<<x%10; //Stack[i++]=x%10; s.push(x%10); //lengthOfStack++; x=x/10; } int sum=0; //int val=lengthOfStack-1; //int val=s.size()-1; int val=0; //for(int j=lengthOfStack-1;j>=0;j--) //{ // sum+=Stack[j]*pow(10.0,val); // val--; //} while(s.empty()!=true) { //int temp=s.pop(); int temp=s.top(); s.pop(); sum+=temp*pow(10.0,val); val++; } return sum; } int reverse(int x) { if(x>=0) { return getNumber(x); } else { //int y=-x; //cout<<"-"; return (-getNumber(-x)); } } };
做完之后,回头搜了下别人的报告。
int reverse(int x) { int result = 0; while (x) { result = result*10 + x%10; x /= 10; } return result; }
补充题目
Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321