📜  Javascript程序计算可被8整除的旋转(1)

📅  最后修改于: 2023-12-03 15:16:18.565000             🧑  作者: Mango

Javascript程序计算可被8整除的旋转

在程序开发中,我们常常需要进行数字的计算,其中涉及到的一个常见问题是如何计算一个数字旋转后是否能被8整除。在本文中,我们将使用Javascript编写一个程序,来实现这个问题的计算。

程序设计思路

我们可以将给定的数字拆分成两个部分,分别表示数字的高位和低位。然后根据旋转规则,将这两个部分重新组合成一个新的数字。最后,我们只需要判断这个新的数字是否能够被8整除即可。

具体而言,我们可以按照以下步骤进行计算:

  1. 读入给定的数字,将其转化为字符串形式,方便进行字符操作。
  2. 对于给定的数字,我们需要将其拆分为高位和低位两部分。具体而言,如果该数字是两位数或者三位数,我们可以分别取其最高位和最低位;如果该数字是四位数,我们则需要分别取其前两位和后两位。
  3. 将高位和低位数字按照规定重新组合成一个新的数字,并将其转化为整数形式。
  4. 判断新的数字是否能够被8整除。如果是,则输出 "Yes",否则输出 "No"。
代码实现

根据上述的程序设计思路,我们可以编写如下Javascript代码来完成数字旋转问题的计算。

function isDivisibleByEight(n) {
  // Convert the given number to a string
  let str = n.toString();

  // Split the number into two parts: high and low
  let high = 0, low = 0;
  if (str.length <= 2) {
    low = parseInt(str);
  } else if (str.length == 3) {
    low = parseInt(str.slice(1));
    high = parseInt(str[0]);
  } else if (str.length == 4) {
    low = parseInt(str.slice(2));
    high = parseInt(str.slice(0, 2));
  }

  // Rotate the number
  let newNum1 = high * 10 + low % 10 * 100 + Math.floor(low / 10);
  let newNum2 = high * 10 + Math.floor(low / 10) + low % 10 * 100;

  // Check if the rotated number is divisible by eight
  return (newNum1 % 8 == 0 || newNum2 % 8 == 0) ? "Yes" : "No";
}

代码中定义了一个名为 "isDivisibleByEight" 的函数,该函数接收一个数字作为输入参数,并返回一个字符串类型的结果,表示该数字是否能被8整除。

函数首先将输入的数字转化为字符串类型,并根据其长度来分别取出高位和低位数字。然后,我们根据规则将这两个数字重新组合,得到两个新的数字。最后,我们检查这两个新的数字是否能被8整除,如果是,则返回 "Yes",否则返回 "No"。

测试样例

我们可以使用下面的测试样例来验证我们编写的程序是否正确:

console.log(isDivisibleByEight(1234)); // Yes
console.log(isDivisibleByEight(80)); // Yes
console.log(isDivisibleByEight(101)); // No
console.log(isDivisibleByEight(0)); // Yes
console.log(isDivisibleByEight(888)); // Yes

测试样例中给出了一些数字,分别用来测试我们编写的程序。我们可以通过执行这些测试样例,来验证我们的程序是否能够正确地计算数字旋转问题。