Programa para encontrar el resto cuando un número grande se divide por 11

Dado un número n, la tarea es encontrar el resto cuando n se divide por 11. La entrada de número puede ser muy grande.

Ejemplos: 

Input : str = 13589234356546756
Output : 6

Input : str = 3435346456547566345436457867978
Output : 4

Dado que el número dado puede ser muy grande, no podemos usar n % 11. Hay algunos pasos que deben usarse para encontrar el resto:  

1. Store number in string.
2. Count length of number string.
3. Convert string character one by one 
into digit and check if it's less than
11. Then continue for next character 
otherwise take remainder and use 
remainder for next number.
4. We get remainder.

Ex. str = "1345"
    len = 4
    rem = 3

Implementación:

C++

// CPP implementation to find remainder
// when a large number is divided by 11
#include <bits/stdc++.h>
using namespace std;
 
// Function to return remainder
int remainder(string str)
{
    // len is variable to store the
    // length of number string.
    int len = str.length();
 
    int num, rem = 0;
 
    // loop that find remainder
    for (int i = 0; i < len; i++) {
        num = rem * 10 + (str[i] - '0');
        rem = num % 11;
    }
 
    return rem;
}
 
// Driver code
int main()
{
    string str = "3435346456547566345436457867978";
    cout << remainder(str);
    return 0;
}

Java

// JAVA implementation to find remainder
// when a large number is divided by 11
import java.io.*;
 
class GFG{
     
    // Function to return remainder
    static int remainder(String str)
    {
        // len is variable to store the
        // length of number string.
        int len = str.length();
      
        int num, rem = 0;
      
        // loop that find remainder
        for (int i = 0; i < len; i++) {
            num = rem * 10 + (str.charAt(i) - '0');
            rem = num % 11;
        }
      
        return rem;
    }
      
    // Driver code
    public static void main(String args[])
    {
        String str = "3435346456547566345436457867978";
        System.out.println(remainder(str));
    }
}
 
/*This code is contributed by Nikita Tiwari.*/

Python3

# Python 3 implementation to find remainder
# when a large number is divided by 11
 
# Function to return remainder
def remainder(st) :
     
    # len is variable to store the
    # length of number string.
    ln = len(st)
     
    rem = 0
     
    # loop that find remainder
    for i in range(0, ln) :
        num = rem * 10 + (int)(st[i])
        rem = num % 11
         
    return rem
     
     
# Driver code
st = "3435346456547566345436457867978"
print(remainder(st))
 
 
# This code is contributed by Nikita Tiwari.

C#

// C# implementation to find remainder
// when a large number is divided by 11
using System;
 
class GFG
{
     
    // Function to return remainder
    static int remainder(string str)
    {
         
        // len is variable to store the
        // length of number string.
        int len = str.Length;
     
        int num, rem = 0;
     
        // loop that find remainder
        for (int i = 0; i < len; i++)
        {
            num = rem * 10 + (str[i] - '0');
            rem = num % 11;
        }
     
        return rem;
    }
     
    // Driver code
    public static void Main()
    {
        string str = "3435346456547566345436457867978";
        Console.WriteLine(remainder(str));
    }
}
 
// This code is contributed by vt_m.

PHP

<?php
// PHP implementation to find remainder
// when a large number is divided by 11
 
// Function to return remainder
function remainder($str)
{
     
    // len is variable to store the
    // length of number string.
    $len = strlen($str);
 
    $num; $rem = 0;
 
    // loop that find remainder
    for ($i = 0; $i < $len; $i++)
    {
        $num = $rem * 10 +
               ($str[$i] - '0');
        $rem = $num % 11;
    }
 
    return $rem;
}
 
// Driver code
$str = "3435346456547566345436457867978";
echo(remainder($str));
 
// This code is contributed by Ajit.
?>

Javascript

<script>
// Javascript implementation to find remainder
// when a large number is divided by 11
 
// Function to return remainder
function remainder(str)
{
     
    // len is variable to store the
    // length of number string.
    let len = str.length;
 
    let num;
    let rem = 0;
 
    // loop that find remainder
    for (let i = 0; i < len; i++)
    {
        num = rem * 10 +
               (str[i] - '0');
        rem = num % 11;
    }
 
    return rem;
}
 
// Driver code
let str = "3435346456547566345436457867978";
document.write(remainder(str));
 
// This code is contributed by _saurabh_jaiswal.
</script>
Producción

4

Complejidad de tiempo: O(L ) donde L es la longitud de la string
Espacio auxiliar: O(L )

Publicación traducida automáticamente

Artículo escrito por Dharmendra_Kumar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *