Print first k digits of 1/n where n is a positive integer
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
Last Updated :
03 Nov, 2021
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...