n-ésimo número cuya suma de dígitos es diez

Dado un valor entero n, encuentre el n-ésimo entero positivo cuya suma es 10. 
Ejemplos: 

Input: n = 2
Output: 28
The first number with sum of digits as
10 is 19. Second number is 28.

Input: 15
Output: 154

Método 1 (Simple): 
Recorremos todos los números. Para cada número, encontramos la suma de los dígitos. Nos detenemos cuando encontramos el n-ésimo número con la suma de dígitos como 10.
 

C++

// Simple CPP program to find n-th number
// with sum of digits as 10.
#include <bits/stdc++.h>
using namespace std;
  
int findNth(int n)
{
    int count = 0;
  
    for (int curr = 1;; curr++) {
  
        // Find sum of digits in current no.
        int sum = 0;
        for (int x = curr; x > 0; x = x / 10)
            sum = sum + x % 10;
  
        // If sum is 10, we increment count
        if (sum == 10)
            count++;
  
        // If count becomes n, we return current
        // number.
        if (count == n)
            return curr;
    }
    return -1;
}
  
int main()
{
    printf("%d\n", findNth(5));
    return 0;
}

Java

// Java program to find n-th number
// with sum of digits as 10.
  
import java.util.*;
import java.lang.*;
  
public class GFG {
    public static int findNth(int n)
    {
        int count = 0;
        for (int curr = 1;; curr++) {
  
            // Find sum of digits in current no.
            int sum = 0;
            for (int x = curr; x > 0; x = x / 10)
                sum = sum + x % 10;
  
            // If sum is 10, we increment count
            if (sum == 10)
                count++;
  
            // If count becomes n, we return current
            // number.
            if (count == n)
                return curr;
        }
    }
  
    public static void main(String[] args)
    {
        System.out.print(findNth(5));
    }
}
  
// Contributed by _omg

Python3

# Python3 program to find n-th number
# with sum of digits as 10.
import itertools
  
# function to find required number
def findNth(n):
  
    count = 0
  
    for curr in itertools.count():
        # Find sum of digits in current no.
        sum = 0
        x = curr
        while(x):
            sum = sum + x % 10
            x = x // 10
  
        # If sum is 10, we increment count
        if (sum == 10):
            count = count + 1
  
        # If count becomes n, we return current
        # number.
        if (count == n):
            return curr
  
    return -1
  
# Driver program
if __name__=='__main__':
    print(findNth(5))
  
# This code is contributed by
# Sanjit_Prasad

C#

// C# program to find n-th number
// with sum of digits as 10.
using System;
  
class GFG {
    public static int findNth(int n)
    {
        int count = 0;
        for (int curr = 1;; curr++) {
  
            // Find sum of digits in current no.
            int sum = 0;
            for (int x = curr; x > 0; x = x / 10)
                sum = sum + x % 10;
  
            // If sum is 10, we increment count
            if (sum == 10)
                count++;
  
            // If count becomes n, we
            // return current number.
            if (count == n)
                return curr;
        }
    }
  
    // Driver Code
    static public void Main()
    {
        Console.WriteLine(findNth(5));
    }
}
  
// This code is contributed
// by Sach_Code

PHP

<?php
// Simple PHP program to find n-th 
// number with sum of digits as 10. 
function findNth($n) 
{ 
    $count = 0; 
  
    for ($curr = 1; ; $curr++)
    { 
  
        // Find sum of digits in 
        // current no. 
        $sum = 0; 
        for ($x = $curr;
             $x > 0; $x = $x / 10) 
            $sum = $sum + $x % 10; 
  
        // If sum is 10, we increment 
        // count 
        if ($sum == 10) 
            $count++; 
  
        // If count becomes n, we return 
        // current number. 
        if ($count == $n) 
            return $curr; 
    } 
    return -1; 
} 
  
// Driver Code
echo findNth(5); 
  
// This code is contributed by Sach .
?>

Javascript

<script>
  
// Simple JavaScript program to find n-th number
// with sum of digits as 10.
  
function findNth(n)
{
    let count = 0;
  
    for (let curr = 1;; curr++) {
  
        // Find sum of digits in current no.
        let sum = 0;
        for (let x = curr; x > 0; x = Math.floor(x / 10))
            sum = sum + x % 10;
  
        // If sum is 10, we increment count
        if (sum == 10)
            count++;
  
        // If count becomes n, we return current
        // number.
        if (count == n)
            return curr;
    }
    return -1;
}
  
  
    document.write(findNth(5));
  
  
// This code is contributed by Surbhi Tyagi.
  
</script>
Producción

55

Método 2 (Eficiente): 
Si miramos más de cerca, podemos notar que todos los múltiplos de 9 están presentes en la progresión aritmética 19, 28, 37, 46, 55, 64, 73, 82, 91, 100, 109,… Sin 
embargo , hay números en la serie anterior cuya suma de dígitos no es 10, por ejemplo, 100. Entonces, en lugar de verificar uno por uno, comenzamos con 19 e incrementamos en 9.
 

C++

// Simple CPP program to find n-th number
// with sum of digits as 10.
#include <bits/stdc++.h>
using namespace std;
  
int findNth(int n)
{
    int count = 0;
  
    for (int curr = 19;; curr += 9) {
  
        // Find sum of digits in current no.
        int sum = 0;
        for (int x = curr; x > 0; x = x / 10)
            sum = sum + x % 10;
  
        // If sum is 10, we increment count
        if (sum == 10)
            count++;
  
        // If count becomes n, we return current
        // number.
        if (count == n)
            return curr;
    }
    return -1;
}
  
int main()
{
    printf("%d\n", findNth(5));
    return 0;
}

Java

// Java program to find n-th number
// with sum of digits as 10.
  
import java.util.*;
import java.lang.*;
  
public class GFG {
    public static int findNth(int n)
    {
        int count = 0;
  
        for (int curr = 19;; curr += 9) {
  
            // Find sum of digits in current no.
            int sum = 0;
            for (int x = curr; x > 0; x = x / 10)
                sum = sum + x % 10;
  
            // If sum is 10, we increment count
            if (sum == 10)
                count++;
  
            // If count becomes n, we return current
            // number.
            if (count == n)
                return curr;
        }
    }
  
    public static void main(String[] args)
    {
        System.out.print(findNth(5));
    }
}
  
// Contributed by _omg

Python3

# Python3 program to find n-th 
# number with sum of digits as 10. 
def findNth(n): 
    count = 0;
      
    curr = 19;
  
    while (True): 
  
        # Find sum of digits in
        # current no. 
        sum = 0;
        x = curr;
        while (x > 0):
            sum = sum + x % 10;
            x = int(x / 10);
  
        # If sum is 10, we increment
        # count 
        if (sum == 10): 
            count+= 1; 
  
        # If count becomes n, we return 
        # current number. 
        if (count == n): 
            return curr;
          
        curr += 9;
  
    return -1; 
  
# Driver Code
print(findNth(5)); 
  
# This code is contributed 
# by mits

C#

// C# program to find n-th number
// with sum of digits as 10.
using System;
  
class GFG {
    public static int findNth(int n)
    {
        int count = 0;
  
        for (int curr = 19;; curr += 9) {
  
            // Find sum of digits in
            // current no.
            int sum = 0;
            for (int x = curr;
                 x > 0; x = x / 10)
                sum = sum + x % 10;
  
            // If sum is 10, we increment
            // count
            if (sum == 10)
                count++;
  
            // If count becomes n, we return
            // current number.
            if (count == n)
                return curr;
        }
    }
  
    // Driver Code
    static public void Main()
    {
        Console.WriteLine(findNth(5));
    }
}
  
// This code is contributed
// by Sach_Code

PHP

<?php
// Simple PHP program to find n-th  
// number with sum of digits as 10. 
function findNth($n) 
{ 
    $count = 0; 
  
    for ($curr = 19; ;$curr += 9) 
    { 
  
        // Find sum of digits in
        // current no. 
        $sum = 0; 
        for ($x = $curr; $x > 0;
             $x = (int)$x / 10) 
            $sum = $sum + $x % 10; 
  
        // If sum is 10, we increment
        // count 
        if ($sum == 10) 
            $count++; 
  
        // If count becomes n, we return 
        // current number. 
        if ($count == $n) 
            return $curr; 
    } 
    return -1; 
} 
  
// Driver Code
echo findNth(5); 
  
// This code is contributed 
// by Sach_Code
?>

Javascript

<script>
  
// Simple Javascript program to find n-th 
// number with sum of digits as 10.
function findNth(n)
{
    let count = 0;
   
    for (let curr = 19; ;curr += 9)
    {
   
        // Find sum of digits in
        // current no.
        let sum = 0;
        for (let x = curr; x > 0;
             x = parseInt(x / 10))
            sum = sum + x % 10;
   
        // If sum is 10, we increment
        // count
        if (sum == 10)
            count++;
   
        // If count becomes n, we return
        // current number.
        if (count == n)
            return curr;
    }
    return -1;
}
   
// Driver Code
document.write(findNth(5));
   
// This code is contributed
// by gfgking
</script>
Producción

55

Publicación traducida automáticamente

Artículo escrito por Sumit bangar 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 *