Maison  >  Article  >  développement back-end  >  En C++, traduisez le nième nombre de telle sorte que la somme des nombres soit dix

En C++, traduisez le nième nombre de telle sorte que la somme des nombres soit dix

WBOY
WBOYavant
2023-09-05 08:41:04999parcourir

En C++, traduisez le nième nombre de telle sorte que la somme des nombres soit dix

Les nombres dont la somme est égale à 10 sont

19, 28, 37, 46, 55, 64, 73, 82, 91, etc.

Si vous observez cette séquence, chaque nombre ajoute 9. Dans la séquence ci-dessus, lors du processus d’addition de 9, il existe des nombres dont la somme des chiffres n’est pas égale à 10. Cependant, vous obtiendrez la somme de tous les nombres égale à 10.

Nous pouvons donc avoir une boucle qui incrémente de 9 et vérifie la somme des nombres et trouve le nième nombre. Voyons quelques exemples

Input

3
7

Output

37
73

Algorithme

  • Initialiser le numéro n
  • Initialiser le compteur à 0.
  • Écrivez une boucle à partir du 19
    • Si la somme actuelle des nombres est de 10, alors incrémentez le compteur de 1.
    • Si le compteur est égal à n, renvoie le nombre actuel.
    • Augmentez la variable d'itération de 9.

Implémentation

Ce qui suit est l'implémentation C++ de l'algorithme ci-dessus
#include <bits/stdc++.h>
using namespace std;
int findNthNumber(int n) {
   int count = 0, i = 19;
   while (true) {
      int sum = 0;
      for (int number = i; number > 0; number = number / 10) {
         sum = sum + number % 10;
      }
      if (sum == 10) {
         count++;
      }
      if (count == n) {
         return i;
      }
      i += 9;
   }
   return -1;
}
int main() {
   int n = 7;
   cout << findNthNumber(7) << endl;
   return 0;
}

Sortie

Si vous exécutez le code ci-dessus, vous obtiendrez les résultats suivants.

73

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer