Número de veces que un número puede ser reemplazado por la suma de sus dígitos hasta que solo contenga un dígito

Cuente la cantidad de veces que un número puede ser reemplazado por la suma de sus dígitos hasta que solo contenga un dígito y el número pueda ser muy grande.
Ejemplos: 
 

Input : 10
Output : 1
1 + 0 = 1, so only one times 
an number can be replaced by its sum .

Input : 991
Output : 3
9 + 9 + 1 = 19, 1 + 9 = 10, 1 + 0 = 1 
hence 3 times the number can be replaced 
by its sum.

Hemos discutido Encontrar la suma de los dígitos de un número hasta que la suma se convierte en un solo dígito
El problema aquí es solo una extensión del problema anterior anterior. Aquí, solo queremos contar la cantidad de veces que un número puede ser reemplazado por su suma hasta que solo contenga un dígito. Como el número puede ser muy grande, para evitar el desbordamiento, ingresamos el número como una string. Entonces, para calcular esto, tomamos una variable denominada suma_temporal en la que calculamos repetidamente la suma de los dígitos de la string y convertimos esta suma_temporal en una string nuevamente. Este proceso se repite hasta que la longitud de la string sea 1 . Para explicar esto de una manera más clara, considere el número 991 
9 + 9 + 1 = 19, ahora 19 es una string 
1 + 9 = 10, nuevamente 10 es una string 
1 + 0 = 1 . de nuevo, 1 es una string, pero aquí la longitud de la string es 1, por lo que el bucle se rompe. 
El número de operaciones de suma es la respuesta final.
A continuación se muestra la implementación de este enfoque.
 
 

C++

// C++ program to count number of times we
// need to add digits to get a single digit.
#include <bits/stdc++.h>
using namespace std;
 
int NumberofTimes(string str)
{
    // Here the count variable store
    // how many times we do sum of
    // digits and temporary_sum
    // always store the temporary sum
    // we get at each iteration .
    int temporary_sum = 0, count = 0;
 
    // In this loop we always compute
    // the sum of digits in temporary_
    // sum variable and convert it
    // into string str till its length
    // become 1 and increase the count
    // in each iteration.
    while (str.length() > 1)
    {
        temporary_sum = 0;
 
        // computing sum of its digits
        for (int i = 0; i < str.length(); i++)
            temporary_sum += ( str[ i ] - '0' ) ;
 
        // converting temporary_sum into string
        // str again .
        str = to_string(temporary_sum) ;
 
        // increase the count
        count++;
    }
 
    return count;
}
 
// Driver program to test the above function
int main()
{
    string s = "991";
    cout << NumberofTimes(s);
    return 0;
}

Java

// Java program to count number of times we
// need to add digits to get a single digit.
 
public class GFG
{
    static int NumberofTimes(String str)
    {
        // Here the count variable store
        // how many times we do sum of
        // digits and temporary_sum
        // always store the temporary sum
        // we get at each iteration .
        int temporary_sum = 0, count = 0;
      
        // In this loop we always compute
        // the sum of digits in temporary_
        // sum variable and convert it
        // into string str till its length
        // become 1 and increase the count
        // in each iteration.
        while (str.length() > 1)
        {
            temporary_sum = 0;
      
            // computing sum of its digits
            for (int i = 0; i < str.length(); i++)
                temporary_sum += ( str.charAt(i) - '0' ) ;
      
            // converting temporary_sum into string
            // str again .
            str = temporary_sum + "" ;
      
            // increase the count
            count++;
        }
      
        return count;
    }
     
    // Driver program to test above functions
    public static void main(String[] args)
    {
         String s = "991";
         System.out.println(NumberofTimes(s));
    }
 
}
/* This code is contributed by Mr. Somesh Awasthi */

Python3

# Python 3 program to count number of times we
# need to add digits to get a single digit.
def NumberofTimes(s):
 
    # Here the count variable store
    # how many times we do sum of
    # digits and temporary_sum
    # always store the temporary sum
    # we get at each iteration .
    temporary_sum = 0
    count = 0
 
    # In this loop we always compute
    # the sum of digits in temporary_
    # sum variable and convert it
    # into string str till its length
    # become 1 and increase the count
    # in each iteration.
    while (len(s) > 1):
     
        temporary_sum = 0
 
        # computing sum of its digits
        for i in range(len(s)):
            temporary_sum += (ord(s[ i ]) -
                              ord('0'))
 
        # converting temporary_sum into
        # string str again .
        s = str(temporary_sum)
 
        # increase the count
        count += 1
 
    return count
 
# Driver Code
if __name__ == "__main__":
     
    s = "991"
    print(NumberofTimes(s))
 
# This code is contributed by Ita_c

C#

// C# program to count number of
// times we need to add digits to
// get a single digit.
using System;
 
class GFG {
     
    // Function to count number of
    // times we need to add digits
    // to get a single digit
    static int NumberofTimes(String str)
    {
         
        // Here the count variable store
        // how many times we do sum of
        // digits and temporary_sum
        // always store the temporary sum
        // we get at each iteration .
        int temporary_sum = 0, count = 0;
     
        // In this loop we always compute
        // the sum of digits in temporary_
        // sum variable and convert it
        // into string str till its length
        // become 1 and increase the count
        // in each iteration.
        while (str.Length > 1)
        {
            temporary_sum = 0;
     
            // computing sum of its digits
            for (int i = 0; i < str.Length; i++)
                temporary_sum += (str[i] - '0');
     
            // converting temporary_sum
            // into string str again .
            str = temporary_sum + "" ;
     
            // increase the count
            count++;
        }
     
        return count;
    }
     
    // Driver code
    public static void Main()
    {
        String s = "991";
        Console.Write(NumberofTimes(s));
    }
 
}
 
// This code is contributed by Nitin Mittal.

PHP

<?php
// PHP program to count number of times we
// need to add digits to get a single digit.
 
function NumberofTimes($str)
{
    // Here the count variable store
    // how many times we do sum of
    // digits and temporary_sum
    // always store the temporary sum
    // we get at each iteration .
    $temporary_sum = 0; $count = 0;
 
    // In this loop we always compute
    // the sum of digits in temporary_
    // sum variable and convert it
    // into string str till its length
    // become 1 and increase the count
    // in each iteration.
    while (strlen($str) > 1)
    {
        $temporary_sum = 0;
 
        // computing sum of its digits
        for ($i = 0; $i < strlen($str); $i++)
            $temporary_sum += ($str[ $i ] - '0');
 
        // converting temporary_sum into
        // string str again .
        $str = (string)($temporary_sum);
 
        // increase the count
        $count++;
    }
 
    return $count;
}
 
// Driver Code
$s = "991";
echo NumberofTimes($s);
 
// This code is contributed
// by Akanksha Rai
?>

Javascript

<script>
 
// Javascript program to
// count number of times we
// need to add digits to
// get a single digit.
 
function NumberofTimes(str)
{
    // Here the count variable store
    // how many times we do sum of
    // digits and temporary_sum
    // always store the temporary sum
    // we get at each iteration .
    var temporary_sum = 0, count = 0;
  
    // In this loop we always compute
    // the sum of digits in temporary_
    // sum variable and convert it
    // into string str till its length
    // become 1 and increase the count
    // in each iteration.
    while (str.length > 1)
    {
        temporary_sum = 0;
  
        // computing sum of its digits
        for (i = 0; i < str.length; i++)
         temporary_sum += ( str.charAt(i) - '0' ) ;
  
        // converting temporary_sum into string
        // str again .
        str = temporary_sum + "" ;
  
        // increase the count
        count++;
    }
  
    return count;
}
 
// Driver program to test above functions
var s = "991";
document.write(NumberofTimes(s));
 
// This code contributed by Princi Singh
 
</script>

Producción: 

3

Este artículo es una contribución de Surya Priy . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
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

Deja una respuesta

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