Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

นับตัวเลข n หลักที่ทุกหลักไม่ซ้ำกัน (Count Unique Digit Numbers) ใน JavaScript

ปัญหา

รับ num นับจำนวนตัวเลขที่มี num หลัก และทุกหลักไม่ซ้ำกัน

ตัวอย่าง

const num = 1;

0-9 ทั้งหมด 10 ตัว → 10

โค้ดตัวอย่าง (Dynamic Programming)

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));

คำอธิบาย

ใช้ Dynamic Programming: dp[i] = จำนวนตัวเลข i หลักที่ไม่ซ้ำ, sum[i] = สะสม

ผลลัพธ์

10 91 739