Vấn đề
Chúng ta có thể kiểm tra một số có chia hết cho 7 không nếu nó có dạng 10a + b và a - 2b chia hết cho 7.
Tiếp tục thực hiện điều này cho đến khi thu được một số biết chắc chắn chia hết cho 7; ta có thể dừng lại khi số này có tối đa 2 chữ số vì ta được cho là biết một số có tối đa 2 chữ số có chia hết cho 7 hay không.
Chúng ta cần viết một hàm JavaScript nhận vào một số và trả về số bước cần thiết để giảm số đó xuống một số có tối đa 2 chữ số và số 2 chữ số đó.
Đầu vào
const num = 1603;
Đầu ra
const output = [7, 2];
Vì các bước thực hiện:
160 - 2*3 = 154 15 - 2*8 = 7
Và giá trị cuối cùng là 7
Ví dụ
Dưới đây là mã nguồn:
const num = 1603;
const findSteps = (num) => {
let times = 0;
let result = 0;
let number = String(num);
while(number.length > 2){
times++;
let firstNumber = Number(number.slice(-1))
const remaining = Number(number.slice(0, number.length - 1))
result = remaining - 2 * firstNumber
number = String(result)
}
return [result, times]
}
console.log(findSteps(num));Kết quả
[7, 2]