Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

การนับตัวเลข n หลักด้วยตัวเลขที่ไม่ซ้ำกันทั้งหมดใน JavaScript


ปัญหา

เราจำเป็นต้องเขียนฟังก์ชัน 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));

คำอธิบายโค้ด:

เราใช้ Dynamic Programming เพื่อติดตามตัวเลขที่ต้องการที่นี่

ผลลัพธ์

และผลลัพธ์ในคอนโซลจะเป็น −

10
91
739