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

JavaScriptですべての一意の数字を含むn桁の数字を数える


問題

唯一の引数として、数値、たとえばnumを受け取るJavaScript関数を作成する必要があります。関数は、数字がnumで、すべての数字が一意であるそのようなすべての数値をカウントする必要があります。

たとえば、関数への入力が-

の場合
const num = 1;

その場合、出力は-

になります。
const output = 10;

出力の説明:

数字の0、1、2、3、4、5、6、7、8、9はすべて1桁で、すべて一意です。

このためのコードは-

になります
const num = 1;
const uniqueDigits = (num = 1) => {
   const dp = [1, 10];
   const sum = [1, 11];
   for (let i = 2; i <= num; i++) {
      dp[i] = sum[i - 1] + (10 - i) * (dp[i - 1]);
      sum[i] = sum[i - 1] + dp[i];
   };
   return dp[num];
};
console.log(uniqueDigits(num));
console.log(uniqueDigits(2));
console.log(uniqueDigits(3));

コードの説明:

ここでは、動的計画法を使用して、必要な数を追跡しました。

出力

そして、コンソールの出力は-

になります
10
91
739

  1. C++で一意の桁を持つ数を数える

    非負の整数nがあるとします。一意の数字xを持つすべての数値をカウントする必要があります。xは0〜10^nの範囲です。したがって、数値nが2の場合、11、22、33、44、55、66、77、88、99なしで0から100までの数値を検索するため、結果は91になります。 これを解決するには、次の手順に従います- nが0の場合、1を返します n:=最小10およびn nが1の場合、10を返します ans:=9およびret:=10 2からnの範囲のiの場合 ans:=ans *(9 – i + 2) ret:=ret + ans retを返す

  2. C ++で、N未満のすべての数値を最大2桁の一意の数字で出力します

    この問題では、整数Nが与えられ、N未満のすべての数値を、最大2つの一意の数字で出力しました。つまり、最大2つの異なる数字を使用して数値を作成できます。 。 問題を理解するために例を見てみましょう- Input: N = 17 Output: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 この問題を解決するために、2桁しかないすべての数字を生成します。数値生成プロセスは0から始まり、数値がN以上になると終了します。2つの一意に選択された場合、 num * 10+iとnum*10 + jを使用して再帰的に数値を生成します。 。このプロセスで重複する番号が発生する