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;