Following are some ways to find the reverse of a number (also removes extra zeroes at beginning of reversed number)
Using while loop:
1
2
3
4
5
6 | while(n)
{
ans *= 10;
ans += n% 10;
n /= 10;
}
|
Using built in function in C++
1
2
3 | string s=to_string(n);
reverse(s.begin(),s.end());
int reversed_n= stoi(s);
|
Long way :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 | int rev(int n)
{
int ans=0;
vector<int> v;
while(n>0)
{
v.push_back(n%10);
n /=10;
}
int i=0;
for(int p:v)
{
if(p==0) i++;
else break;
}
int m=1;
for(int p=v.size()-1;p>=i;p--)
{
v[p] *=m;
m *=10;
ans+=v[p];
}
return ans;
}
|
Using Stack:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 | int n=234;
stack<int> st;
while (n != 0)
{
st.push(n % 10);
n /= 10;
}
int reversed_n = 0;
int i = 1;
while (!st.empty())
{
reversed_n +=(st.top() * i);
st.pop();
i *= 10;
}
cout<<reversed_n;
|