[ create a new paste ] login | about

Link: http://codepad.org/e3s5558k    [ raw code | output | fork | 1 comment ]

joshua_cheek - C, pasted on Nov 15:
#include <stdio.h>

int main()
{

  int original = 321;
  int reversed = 0;
  int lsd;

  printf( "original equals %d\n" , original );

  lsd = original % 10;  // las now equals 1
  original /= 10;       // the same as original = original / 10;  original now equals 32
  reversed *= 10;       // the same as original = original * 10;  reversed now equals 0
  reversed += lsd;      // the same as original = original + lsd; reversed now equals 1

  lsd = original % 10;  // lsd      now equals 2
  original /= 10;       // original now equals 3
  reversed *= 10;       // reversed now equals 10
  reversed += lsd;      // reversed now equals 12

  lsd = original % 10;  // lsd      now equals 3
  original /= 10;       // original now equals 0
  reversed *= 10;       // reversed now equals 120
  reversed += lsd;      // reversed now equals 123

  //at this point, original is 0, so we know we are done.

  printf( "reversed equals %d\n" , reversed );

  return 0;
}


Output:
1
2
original equals 321
reversed equals 123


Create a new paste based on this one


Comments:
posted by joshua_cheek on Nov 15
Showing the manual process for reversing a number, this should make it easier to generalize and construct an algorithm.
reply