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

各桁が異なる特定の範囲の数値を検索するC++プログラム


2つの数lとrがあるとします。 lとr(両方を含む)の間にあり、xのすべての数字が異なる整数xを見つける必要があります。

したがって、入力がl=211のような場合。 r =230の場合、出力は213になります。

ステップ

これを解決するには、次の手順に従います-

for initialize k := l, when k <= r, update (increase k by 1), do:
   h := convert k to string
   Define one set s
   for initialize i := 0, when i < size of h, update (increase i by 1), do:
      insert h[i] into s
   if size of s is same as size of h, then:
      return h
return "-1"

理解を深めるために、次の実装を見てみましょう-

#include <bits/stdc++.h>
using namespace std;

string solve(int l, int r) {
   for (int k = l; k <= r; k++) {
      string h = to_string(k);
      set<char> s;
      for (int i = 0; i < h.size(); i++)
         s.insert(h[i]);
      if (s.size() == h.size()) {
         return h;
      }
   }
   return "-1";
}
int main() {
   int l = 211;
   int r = 230;
   cout << solve(l, r) << endl;
}

入力

211, 230

出力

213

  1. 合計が1桁になるまで数値の桁の合計を見つけるC++プログラム

    この記事では、合計自体が1桁になり、それ以上の合計ができなくなるまで、数値の桁の合計を見つけるプログラムについて説明します。 たとえば、数値14520の場合を考えます。この数値の桁を加算すると、1 + 4 + 5 + 2 + 0 =12になります。これは1桁の数値ではないため、受け取った数値の桁をさらに加算します。 。それらを追加すると、1 + 2=3になります。 さて、3はそれ自体が1桁の数字であり、その数字をそれ以上追加できないため、最終的な答えです。 これを解決するには、9で割り切れる数の桁の合計が9のみに等しいというアプローチを使用します。 9で割り切れない数値については、9で割

  2. 与えられた文字列の順列の数を見つけるためのC++プログラム

    文字列の文字をさまざまな順序で並べることができます。ここでは、特定の文字列から形成できる順列の数をカウントする方法を説明します。 1つの文字列が「abc」の場合はわかります。 3つの文字があります。 3つにアレンジできます! =6つの異なる方法。したがって、n文字の文字列は、nに配置できます。違う方法。しかし、aabのように同じ文字が複数回存在する場合、6つの順列はありません。 aba aab baa baa aab aba ここで、(1,6)、(2、5)、(3,4)は同じです。したがって、ここでは順列の数は3です。これは基本的に(n!)/(複数回発生しているす