योगात्मक संख्याएं
योगात्मक संख्या एक संख्या स्ट्रिंग है जिसके अंक योगात्मक अनुक्रम बना सकते हैं।
एक मान्य योगात्मक अनुक्रम में कम से कम तीन संख्याएँ होनी चाहिए। पहली दो संख्याओं को छोड़कर, अनुक्रम में प्रत्येक बाद की संख्या पूर्ववर्ती दो का योग होनी चाहिए। केवल अंक '0'-'9' वाली स्ट्रिंग को देखते हुए, यह निर्धारित करने के लिए एक फ़ंक्शन लिखें कि क्या यह एक योगात्मक संख्या है।
नोट - योगात्मक अनुक्रम में संख्याओं में अग्रणी शून्य नहीं हो सकते, इसलिए अनुक्रम 1, 2, 03 या 1, 02, 3 अमान्य है।
उदाहरण के लिए -
स्ट्रिंग "199100199" योगात्मक संख्या है, क्योंकि योगात्मक अनुक्रम - 1, 99, 100, 199 -
है1 + 99 =100, 99 + 100 =199
उदाहरण
इसके लिए कोड होगा -
const str ="199100199";const isAdditiveNumber =(numStr) => {if(numStr.length <3) झूठी वापसी; चलो str =""; देखा =सच; for(i =numStr.length - 1; i> 1; i−−){ str =`${numStr[i]}${str}`; अगर (numStr [i] ==="0") जारी रखें; चलो एस =स्ट्र; चलो s2 =numStr[i − 1] for(let j =i − 2; j>=0; j−−){ if(`${s2}`.startsWith("0") &&s2.length> 1) {s2 =`${numStr[j]}${s2}` देखा =झूठा; } और अगर (parseInt(s)>=parseInt(s2)){ let diff =s - s2; if(numStr.slice(0, j + 1).endsWith(diff)){ s =s2; s2 =अंतर; चलो ind =Math.floor(Math.log10(diff)); इंड =इंड <0? 0 :इंड जे -=इंड; देखा =सच; }else { s2 =`${numStr[j]}${s2}` देखा =झूठा; }} और {देखा =झूठा; तोड़ना; } } अगर (देखा) वापसी देखी गई; }; वापसी देखी गई;};कंसोल.लॉग(isAdditiveNumber(str));
आउटपुट
और कंसोल में आउटपुट होगा -
<पूर्व>सत्य