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

การหาตัวเลขที่คูณกับอินพุตแล้วได้อินพุตใน JavaScript


ปัญหา

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