Dados tres números a, b y k, encuentre el k-ésimo dígito en a b desde el lado derecho
Ejemplos:
Input : a = 3, b = 3, k = 1 Output : 7 Explanation 3^3 = 27 for k = 1. First digit is 7 in 27 Input : a = 5, b = 2, k = 2 Output : 2 Explanation 5^2 = 25 for k = 2. First digit is 2 in 25
Método
1) Calcule a^b
2) Elimine iterativamente el último dígito hasta que el k-ésimo dígito no se cumpla
C++
// CPP program for finding k-th digit in a^b #include <bits/stdc++.h> using namespace std; // To compute k-th digit in a^b int kthdigit(int a, int b, int k) { // computing a^b int p = pow(a, b); int count = 0; while (p > 0 && count < k) { // getting last digit int rem = p % 10; // increasing count by 1 count++; // if current number is required digit if (count == k) return rem; // remove last digit p = p / 10; } return 0; } // Driver code int main() { int a = 5, b = 2; int k = 1; cout << kthdigit(a, b, k); return 0; }
Java
// Java program for finding k-th digit in a^b import java.util.*; import java.lang.*; public class GfG { // To compute k-th digit in a^b public static int kthdigit(int a, int b, int k) { // Computing a^b int p = (int)Math.pow(a, b); int count = 0; while (p > 0 && count < k) { // Getting last digit int rem = p % 10; // Increasing count by 1 count++; // If current number is required digit if (count == k) return rem; // Remove last digit p = p / 10; } return 0; } // Driver Code public static void main(String argc[]) { int a = 5, b = 2; int k = 1; System.out.println(kthdigit(a, b, k)); } } // This code is contributed by Sagar Shukla.
Python3
# Python3 code to compute k-th # digit in a^b def kthdigit(a, b, k): # computing a^b in python p = a ** b count = 0 while (p > 0 and count < k): # getting last digit rem = p % 10 # increasing count by 1 count = count + 1 # if current number is # required digit if (count == k): return rem # remove last digit p = p / 10; # driver code a = 5 b = 2 k = 1 ans = kthdigit(a, b, k) print (ans) # This code is contributed by Saloni Gupta
C#
// C# program for finding k-th digit in a^b using System; public class GfG { // To compute k-th digit in a^b public static int kthdigit(int a, int b, int k) { // Computing a^b int p = (int)Math.Pow(a, b); int count = 0; while (p > 0 && count < k) { // Getting last digit int rem = p % 10; // Increasing count by 1 count++; // If current number is required digit if (count == k) return rem; // Remove last digit p = p / 10; } return 0; } // Driver Code public static void Main() { int a = 5, b = 2; int k = 1; Console.WriteLine(kthdigit(a, b, k)); } } // This code is contributed by vt_m.
PHP
<?php // PHP program for finding // k-th digit in a^b // To compute k-th // digit in a^b function kthdigit($a, $b, $k) { // computing a^b $p = pow($a, $b); $count = 0; while ($p > 0 and $count < $k) { // getting last digit $rem = $p % 10; // increasing count by 1 $count++; // if current number is // required digit if ($count == $k) return $rem; // remove last digit $p = $p / 10; } return 0; } // Driver Code $a = 5; $b = 2; $k = 1; echo kthdigit($a, $b, $k); // This code is contributed by anuj_67. ?>
Javascript
<script> // JavaScript program for finding k-th digit in a^b // To compute k-th digit in a^b function kthdigit(a, b, k) { // Computing a^b let p = Math.pow(a, b); let count = 0; while (p > 0 && count < k) { // Getting last digit let rem = p % 10; // Increasing count by 1 count++; // If current number is required digit if (count == k) return rem; // Remove last digit p = p / 10; } return 0; } // Driver code let a = 5, b = 2; let k = 1; document.write(kthdigit(a, b, k)); </script>
Producción:
5
¿Cómo evitar el desbordamiento?
Podemos encontrar potencia por debajo del módulo 10sup>k para evitar el desbordamiento. Después de encontrar la potencia bajo el módulo, debemos devolver el primer dígito de la potencia.
Publicación traducida automáticamente
Artículo escrito por Shahnawaz_Ali y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA