查找数字,当用输入数字相乘时会在 JavaScript 中产生输入数字


问题

要求编写一个 JavaScript 函数,它接受一个写成 abcd...(a、b、c、d... 为数字)的正整数 n 和一个正整数 p

  • 我们要找到一个正整数 k(如果存在),将以连续幂 p 累加 n 的数字总和等于 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

更新时间:19-Apr-2021

94 次浏览

开启您的职业生涯

完成课程以获得认证

开始行动
广告