JavaScript 中计算所有数字都唯一的 n 位数


问题

我们需要编写一个 JavaScript 函数,它以一个数字(例如 num)作为唯一的参数。该函数应该计算所有具有 num 位数且所有数字都唯一的数字。

例如,如果函数的输入为 -

const num = 1;

则输出应为 -

const output = 10;

输出说明

数字 0、1、2、3、4、5、6、7、8、9 都是一位数,并且所有数字都是唯一的。

示例

代码如下 -

 实时演示

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

更新于: 2021-03-18

225 次查看

开启你的职业生涯

通过完成课程获得认证

开始学习
广告