Dado un gran número ‘num’ representado como una string y un entero x, encuentre el valor de «num % x» o «num mod x». La salida se espera como un número entero.
Ejemplos:
Input: num = "12316767678678", a = 10 Output: num (mod a) ≡ 8
La idea es procesar todos los dígitos uno por uno y usar la propiedad que
xy (mod a) ≡ ((x (mod a) * 10) + (y (mod a))) mod a
donde, x : dígito más a la izquierda
y: resto de dígitos excepto x.
por ejemplo:
625 % 5 = (((6 % 5)*10) + (25 % 5)) % 5 = 0
A continuación se muestra la implementación.
Gracias a utkarsh111 por sugerir la siguiente solución.
C++
// C++ program to compute mod of a big number represented // as string #include <iostream> using namespace std; // Function to compute num (mod a) int mod(string num, int a) { // Initialize result int res = 0; // One by one process all digits of 'num' for (int i = 0; i < num.length(); i++) res = (res * 10 + (int)num[i] - '0') % a; return res; } // Driver program int main() { string num = "12316767678678"; cout << mod(num, 10); return 0; }
Java
// Java program to compute mod of a big // number represented as string import java.io.*; class GFG { // Function to compute num (mod a) static int mod(String num, int a) { // Initialize result int res = 0; // One by one process all digits of 'num' for (int i = 0; i < num.length(); i++) res = (res * 10 + (int)num.charAt(i) - '0') % a; return res; } // Driver program public static void main(String[] args) { String num = "12316767678678"; System.out.println(mod(num, 10)); } } // This code is contributed by vt_m.
Python3
# program to compute mod of a big number # represented as string # Function to compute num (mod a) def mod(num, a): # Initialize result res = 0 # One by one process all digits # of 'num' for i in range(0, len(num)): res = (res * 10 + int(num[i])) % a return res # Driver program num = "12316767678678" print(mod(num, 10)) # This code is contributed by Sam007
C#
// C# program to compute mod of a big // number represented as string using System; public class GFG { // Function to compute num (mod a) static int mod(String num, int a) { // Initialize result int res = 0; // One by one process all // digits of 'num' for (int i = 0; i < num.Length; i++) res = (res * 10 + (int)num[i] - '0') % a; return res; } // Driver code public static void Main() { String num = "12316767678678"; Console.WriteLine(mod(num, 10)); } } // This code is contributed by Sam007
PHP
<?php // PHP program to compute mod // of a big number represented // as string // Function to compute num (mod a) function mod($num, $a) { // Initialize result $res = 0; // One by one process // all digits of 'num' for ($i = 0; $i < $r = strlen($num); $i++) $res = ($res * 10 + $num[$i] - '0') % $a; return $res; } // Driver Code $num = "12316767678678"; echo mod($num, 10); // This code is contributed by ajit ?>
Javascript
<script> // Javascript program to compute mod // of a big number represented // as string // Function to compute num (mod a) function mod(num, a) { // Initialize result let res = 0; // One by one process // all digits of 'num' for(let i = 0; i < num.length; i++) res = (res * 10 + parseInt(num[i])) % a; return res; } // Driver Code let num = "12316767678678"; document.write(mod(num, 10)); // This code is contributed by _saurabh_jaiswal </script>
Producción :
8
Complejidad de tiempo : O(|num|)
- La complejidad del tiempo se convertirá en el tamaño de la string num a medida que atravesamos una vez en num.
Espacio Auxiliar: O(1)
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA