ปัญหา
เราต้องเขียนฟังก์ชัน JavaScript ที่รับจำนวนเต็มบวก n เขียนเป็น abcd... (a,b,c,d... เป็นหลักฐาน) และจำนวนเต็มบวก p
- เราต้องการหาจำนวนเต็มบวก k ถ้ามีอยู่ ที่ทำให้ผลรวมของหลักฐาน n ยกกำลัง p ตามลำดับ เท่ากับ k * n
กล่าวคือ: มีจำนวนเต็ม k ที่ทำให้: (a^p + b^(p+1) + c^(p+2) + d^(p+3) + ...) = n * k หากเป็นเช่นนั้น คืนค่า k มิฉะนั้นคืนค่า -1
ตัวอย่าง
โค้ดตัวอย่างดังนี้:
const num = 695;
const p = 2;
const findDesiredNumber = (num, p) => {
let sum = 0;
let str = String(num);
for(const char in str){
sum += str[char] * p;
p++;
};
return Number.isInteger(sum/num) ? sum/num : -1;
};
console.log(findDesiredNumber(num, p));
ผลลัพธ์
ผลลัพธ์ในคอนโซล:
-1