C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++で桁の合計が10であるn番目の数値


数字の合計が10に等しい数は

19、28、37、46、55、64、73、82、91など。

級数を観察すると、各数値は9ずつ増加します。上記のシーケンスには、9ずつ増加している間、桁の合計が10に等しくない数値があります。ただし、桁の合計が10に等しいすべての数値を取得します。

したがって、9ずつ増分し、桁の合計をチェックしてn番目の数値を見つけるループを作成できます。いくつかの例を見てみましょう

入力

3
7

出力

37
73

アルゴリズム

  • 番号を初期化しますn
  • カウンターを0に初期化します。
  • 19から繰り返すループを作成します
    • 現在の桁数の合計が10の場合、カウンターを1つ増やします。
    • カウンターがnに等しい場合は、現在の数値を返します。
    • 反復変数を9ずつ増やします。

実装

以下は、C++での上記のアルゴリズムの実装です

#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;
}

出力

上記のコードを実行すると、次の結果が得られます。

73

  1. Xとの合計がC++のフィボナッチ数であるノードをカウントします

    ノードの重みを数値として持つ二分木を指定します。目標は、その数がフィボナッチ数であるような重みを持つノードの数を見つけることです。フィボナッチ数列の数は次のとおりです。0、1、1、2、3、5、8、13…。n番目の数はの合計です。 (n-1)番目と(n-2)番目。重みが13の場合、それはフィボナッチ数であるため、ノードがカウントされます。 例 入力 temp=1。値を入力した後に作成されるツリーを以下に示します- 出力 Count the nodes whose sum with X is a Fibonacci number are: 3 説明 we are given with

  2. 指定された数値の桁を合計するC++プログラム

    これは、C++言語で桁の合計を計算する例です。 例 #include<iostream> using namespace std; int main() {    int x, s = 0;    cout << "Enter the number : ";    cin >> x;    while (x != 0) {       s = s + x % 10;       x = x / 10;