使用JavaScript遞迴檢查一系列操作是否產生給定數字
從數字1開始,反覆加5或乘以3,可以產生無限多個新數字。我們需要編寫一個函式,給定一個數字,嘗試找到這樣一系列加法和乘法運算來產生該數字,並根據是否存在這樣的序列返回布林值。
例如:
數字13可以透過先乘以3,然後加兩次5來得到,所以函式應該對13返回true。而數字15根本無法達到,所以函式應該對15返回false。
方法
我們將使用遞迴方法,反覆嘗試所有可能導致所需解決方案的可能性。此方法的程式碼將是:
示例
const sequenceExists = (num, curr = 1) => {
if(curr > num){
return false;
};
if(curr === num){
return true;
};
return sequenceExists(num, curr+5) || sequenceExists(num, curr*3);
};
console.log(sequenceExists(18));
console.log(sequenceExists(15));
console.log(sequenceExists(32));
console.log(sequenceExists(167));
console.log(sequenceExists(17));
console.log(sequenceExists(1119));輸出
控制檯中的輸出將是:
true false true true false true
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP