/*
** Author : Yupi Sugianto, S.Kom
** Language : C++
** email : ups_in_blues@yahoo.com
** website : http://www.yupisugianto.com
** compiler : Emacs Text Editor
*/


using namespace std;

#include<iostream>
#include<cstdlib>

int digit(unsigned int x)
{
	int retVal = 0;
	int z;
	while(1)
	{
		z = x%10;
		x = (x-z)/10;
		retVal++;
		if(x==0) { break; }
	}
	return retVal;

}

unsigned int revNum(unsigned int n, unsigned int numDigit)
{
	unsigned int retVal;

	int realDigit = digit(n);


	int *arr = 0;
	int z;

	for(int i=0; i<realDigit; i++)
	{
		z = n%10;
		n = (n-z)/10;


		arr[i] = z;
	}


	cout<<endl<<endl<<"arr : ";
	unsigned int rev=0;
	for(i=0; i<numDigit; i++)
	{
	    if(i<realDigit)
	    {
		int m = 1;
		for(int j=i;j<realDigit-1;j++) { m*=10; }

		int sum =  (arr[i]) * m ;
		rev+=sum;
		cout<<endl<<"arr["<<i<<"] :"<<arr[i]<<" ; m : "<<m<<" ; sum : "<<sum<<" ; rev : "<<rev;
	    }
	    else
	    {

		int multp = 1;
		for(i=0;i<(numDigit-realDigit);i++) { multp*=10; }

		cout<<endl<<endl<<"multp : "<<multp;
		rev*=multp;
		break;
	    }
	}


	if(realDigit>numDigit)
	{
		int div = 1;
		for(i=0;i<(realDigit-numDigit);i++) { div*=10; }

		cout<<endl<<endl<<"div : "<<div;
		rev = rev / div;
	}


	cout<<endl<<endl<<rev;
	cout<<endl<<endl;


	return rev;
}

int main()
{
	unsigned int a,b;


	cout<<"Enter number: ";
	cin>>a;
	cout<<"Enter digit number: ";
	cin>>b;
	cout<<endl<<" Number : "<<a;
	cout<<endl<<" Digit Number : "<<b;


	cout<<endl<<endl;
	cout<<"Reserve = "<<revNum(a,b)<<endl;

	return 0;

}
