给定三个整数P , Q和N ,其中P ,任务是计算P / Q的分数值,并找到小数点后的第N个数字。
例子
Input: P = 1, Q = 2, N = 1
Output: 5
(1 / 2) = 0.5 and 5 is the first digit after the decimal.
Input: P = 5, Q = 6, N = 5
Output: 3
(5 / 6) = 0.833333333…
方法:初始化一个整数变量res ,该变量存储结果的第N个数字。现在,当N> 0时,请执行以下操作:
- 将N减1 。
- 要计算数字,请更新值P = P * 10 。
- 计算res = P / Q并更新P = P%Q 。
最后,打印分辨率。
下面是上述方法的实现:
C++
// C++ implementation of the approach
#include
using namespace std;
// Function to print the Nth digit
// in the fraction (p / q)
int findNthDigit(int p, int q, int N)
{
// To store the resultant digit
int res;
// While N > 0 compute the Nth digit
// by dividing p and q and store the
// result into variable res
// and go to next digit
while (N > 0) {
N--;
p *= 10;
res = p / q;
p %= q;
}
return res;
}
// Driver code
int main()
{
int p = 1, q = 2, N = 1;
cout << findNthDigit(p, q, N);
return 0;
}
Java
// Java implementation of the approach
class GFG
{
// Function to print the Nth digit
// in the fraction (p / q)
static int findNthDigit(int p,
int q, int N)
{
// To store the resultant digit
int res = 0;
// While N > 0 compute the Nth digit
// by dividing p and q and store the
// result into variable res
// and go to next digit
while (N > 0)
{
N--;
p *= 10;
res = p / q;
p %= q;
}
return res;
}
// Driver code
public static void main(String args[])
{
int p = 1, q = 2, N = 1;
System.out.println(findNthDigit(p, q, N));
}
}
// This code is contributed by AnkitRai01
Python3
# Python3 implementation of the approach
# Function to print the Nth digit
# in the fraction (p / q)
def findNthDigit(p, q, N) :
# While N > 0 compute the Nth digit
# by dividing p and q and store the
# result into variable res
# and go to next digit
while (N > 0) :
N -= 1;
p *= 10;
res = p // q;
p %= q;
return res;
# Driver code
if __name__ == "__main__" :
p = 1; q = 2; N = 1;
print(findNthDigit(p, q, N));
# This code is contributed by kanugargng
C#
// C# implementation of the approach
using System;
class GFG
{
// Function to print the Nth digit
// in the fraction (p / q)
static int findNthDigit(int p, int q, int N)
{
// To store the resultant digit
int res = 0;
// While N > 0 compute the Nth digit
// by dividing p and q and store the
// result into variable res
// and go to next digit
while (N > 0)
{
N--;
p *= 10;
res = p / q;
p %= q;
}
return res;
}
// Driver code
public static void Main()
{
int p = 1, q = 2, N = 1;
Console.WriteLine(findNthDigit(p, q, N));
}
}
// This code is contributed by AnkitRai01
输出:
5