Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Tìm số k khi nhân với số đầu vào cho số đầu vào trong JavaScript

Vấn đề

Chúng ta cần viết một hàm JavaScript nhận vào một số nguyên dương n viết dạng abcd... (a, b, c, d... là chữ số) và một số nguyên dương p. Ta muốn tìm số nguyên dương k, nếu tồn tại, sao cho tổng các chữ số của n lấy lũy thừa liên tiếp của p bằng k * n. Cụ thể: (a^p + b^(p+1) + c^(p+2) + d^(p+3) + ...) = n * k. Nếu tồn tại, trả về k, ngược lại -1.

Ví dụ

Dưới đây là mã nguồn:

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

Kết quả

Kết quả đầu ra trong console:

-1