C++ では、数値の合計が 10 になるように n 番目の数値を変換します。

WBOY
リリース: 2023-09-05 08:41:04
転載
854 人が閲覧しました

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 ずつ増やします。

実装

< p>以下は、上記のアルゴリズムの C 実装です。

#include 
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;
}
ログイン後にコピー

出力

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

えええええ

以上がC++ では、数値の合計が 10 になるように n 番目の数値を変換します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!