• 0

reversing integer numbers?


Question

I just came back from a MS interview and I was asked to reverse integer numbers. Needless to say I completely bombed the question. You can't use toString () methods and use the reverse string function call ( I tried to do that). So how do you reverse integer numbers mathematically?! Say I have an integer 123, how do I mathematically manipulate it so it comes out to be 321?

Link to comment
https://www.neowin.net/forum/topic/287002-reversing-integer-numbers/
Share on other sites

9 answers to this question

Recommended Posts

  • 0

Think of the (decimal) number 123 as 1 * 10 ^ 2 + 2 * 10 ^ 1 + 3 * 10 ^ 0, now this should map to 3 * 10 ^ 2 + 2 * 10 ^ 1 + 3 * 10 ^ 0.

In Haskell

reverseInt :: Int -> Int
reverseInt i  = let calculateInt n b
    | null n = 0
  	| otherwise = (head n) * 10  ^ (b) + calculateInt (tail n) (b+1) 
	in
	calculateInt (sepInt i) 0 where
  sepInt i
   | i == 0  = []
   | otherwise = (sepInt (i `div` 10)) ++ [(i `mod` 10)]

  • 0
  Elagizy said:
Hey... Check this >>

Imports vb = Microsoft.VisualBasic

Text1.Text = vb.StrReverse("123") -------- > 321

585500504[/snapback]

  Quote
You can't use toString () methods and use the reverse string function call ( I tried to do that). So how do you reverse integer numbers mathematically?!

I never even thought of the string reverse method. That would've been slick.

Here's what I came up with.

private int Reverse(int value)
  {
  	int reverse = 0;
  	while(value > 0)
  	{
    int part = value % 10;
    value /= 10;
    reverse *= 10;
    reverse += part;
  	}
  	return reverse;
  }

  • 0

for those of you who want this in vb, here it is

Private Shared Function Reverse(ByVal num As Integer) As Integer
	Dim value As Integer

	While num > 0
  Dim part As Integer = num Mod 10
  num \= 10   'must use integer division instead of normal division
  value *= 10
  value += part
	End While

	Return value
End Function

the only weird part is the use of backwards slash, which denotes integer division in vbnet

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • Two ways information like this is passed on. 1. The developers release the "how-to" content and Neowin passes it on. 2. Neowin, or anyone else in the tech community figure out how to do it, Neowin passes it on. Which one are you?
    • On my PC, when using UWP, I have a recurring issue with the scroll bar disappearing after sending a message with a pasted image or text. The only way to fix it was to close and reopen WhatsApp. Now I'll still need this workaround to free up memory in WPA, since that's what I need to do when the WhatsApp tab is consuming 4 GB of RAM after being open for a long time.
    • It’s not just that malware can escape the sandbox but that having Windows Sandbox enabled leaves a vector for malware on the host to hide from AV solutions. The likelihood of this happening must be low but depends on your risk appetite. https://windowsforum.com/threa...x-for-cyber-attacks.356358/
    • https://www.windowsdigitals.com/how-to-remove-items-from-right-click-menu-in-windows-11/
    • Ironically, I do have audio engineering experience, but still find the different flavors of VB-Audio's VoiceMeeter (and more advanced options like Banana and Potato) to be a little unintuitive. Yes, I can figure them out, but despite having a UI that looks like an audio mixer, they don't exactly follow typical audio mixing conventions, so it takes a little time to figure out how the software works. Still, I feel like for what you are asking for, VoiceMeeter is a good solution. If you're interested, I could probably create a quick how-to video.
  • Recent Achievements

    • Rookie
      Snake Doc went up a rank
      Rookie
    • First Post
      nobody9 earned a badge
      First Post
    • One Month Later
      Ricky Chan earned a badge
      One Month Later
    • First Post
      leoniDAM earned a badge
      First Post
    • Reacting Well
      Ian_ earned a badge
      Reacting Well
  • Popular Contributors

    1. 1
      +primortal
      497
    2. 2
      Michael Scrip
      205
    3. 3
      ATLien_0
      201
    4. 4
      Xenon
      138
    5. 5
      +FloatingFatMan
      117
  • Tell a friend

    Love Neowin? Tell a friend!