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
-
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
-
指定された数値の桁を合計する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;