# 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

```#include <iostream>
using namespace std;

// Function to print first k digits after dot in value
// of 1/n.  n is assumed to be a positive integer.
void print(int n, int k)
{
int rem = 1; // Initialize remainder

// Run a loop k times to print k digits
for (int i = 0; i < k; i++)
{
// The next digit can always be obtained as
// doing (10*rem)/10
cout << (10 * rem) / n;

// Update remainder
rem = (10*rem) % n;
}
}

// Driver program to test above function
int main()
{
int n = 7, k = 3;
print(n, k);
cout << endl;

n = 21, k = 4;
print(n, k);

return 0;
}
```

Output:

```142
0476```

# GATE CS Corner    Company Wise Coding Practice

2 Average Difficulty : 2/5.0
Based on 4 vote(s)