InMobi Interview Question
SDE1sCountry: India
Interview Type: Written Test
import sys
file = open('input')
for line in file:
denominator = 2*int(line)
numerator = 1
print('0.', end='')
rem = -1
while(rem != 0):
numerator = numerator*10
while numerator < denominator:
numerator = numerator*10
print('0', end='')
else:
div = numerator / denominator
rem = numerator % denominator
print(int(div), end='')
numerator=rem
print()
I don't really understand why this is such a hard task, this is grade 2 math.
C#
static string recurs(int currnum, int divider, string curr)
{
currnum *= 10;
int remain = currnum % divider;
currnum /= divider;
curr += currnum.ToString();
Console.Write(currnum.ToString());
if (remain == 0)
return curr;
else
recurs(remain, divider, curr);
return curr;
}
static void Main(string[] args)
{
int n = int.Parse(Console.ReadLine());
int number = n * 2;
Console.Write("0.");
recurs(1, number, "0.");
Console.WriteLine();
Console.ReadLine();
}
I don't understand why the output of 100 will the the value you give, I thought it should be 1 / (2 * 100) = 0.005.
Here is my code
- ravio May 31, 2014