Given a positive integer n, print first k digits after point in value of 1/n. Your program should avoid overflow and floating point arithmetic.
Examples :
Input: n = 3, k = 3
Output: 333
Input: n = 50, k = 4
Output: 0200
We strongly recommend to minimize the browser and try this yourself first.
Let us consider an example n = 7, k = 3. The first digit of 1/7 is ‘1’, it can be obtained by doing integer value of 10/7. Remainder of 10/7 is 3. Next digit is 4 which can be obtained by taking integer value of 30/7. Remainder of 30/7 is 2. Next digits is 2 which can be obtained by taking integer value of 20/7
C++
#include <iostream>
using namespace std;
void print( int n, int k)
{
int rem = 1;
for ( int i = 0; i < k; i++)
{
cout << (10 * rem) / n;
rem = (10*rem) % n;
}
}
int main()
{
int n = 7, k = 3;
print(n, k);
cout << endl;
n = 21, k = 4;
print(n, k);
return 0;
}
|
Java
import java.io.*;
class GFG
{
static void print( int n, int k)
{
int rem = 1 ;
for ( int i = 0 ; i < k; i++)
{
System.out.print( ( 10 * rem) / n);
rem = ( 10 * rem) % n;
}
}
public static void main(String []args)
{
int n = 7 , k = 3 ;
print(n, k);
System.out.println();
n = 21 ;
k = 4 ;
print(n, k);
}
}
|
Python3
import math
def Print (n, k):
rem = 1
for i in range ( 0 , k):
print (math.floor((( 10 * rem)
/ n)), end = "")
rem = ( 10 * rem) % n
n = 7
k = 3
Print (n, k);
print ( " " )
n = 21
k = 4
Print (n, k);
|
C#
using System;
class GFG {
static void print( int n, int k)
{
int rem = 1;
for ( int i = 0; i < k; i++)
{
Console.Write( (10 * rem) / n);
rem = (10 * rem) % n;
}
}
public static void Main()
{
int n = 7, k = 3;
print(n, k);
Console.WriteLine();
n = 21;
k = 4;
print(n, k);
}
}
|
PHP
<?php
function println( $n , $k )
{
$rem = 1;
for ( $i = 0; $i < $k ; $i ++)
{
echo floor ((10 * $rem ) / $n );
$rem = (10 * $rem ) % $n ;
}
}
$n = 7; $k = 3;
println( $n , $k );
echo "\n" ;
$n = 21; $k = 4;
println( $n , $k );
?>
|
Javascript
<script>
function print(n, k)
{
let rem = 1;
let ans = '' ;
for (let i = 0; i < k; i++)
{
ans += Math.floor(((10 * rem) / n));
rem = (10*rem) % n;
}
document.write(ans)
}
let n = 7;
let k = 3;
print(n, k);
document.write( "<br>" );
n = 21;
k = 4;
print(n, k);
</script>
|
Output :
142
0476
Time Complexity: O(k)
Auxiliary Space: O(1)
Reference:
Algorithms And Programming: Problems And Solutions by Alexander Shen
This article is contributed by Sachin. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.