आम तौर पर, एक धनात्मक पूर्णांक n का भाज्य n से कम या उसके बराबर सभी धनात्मक पूर्णांकों का गुणनफल होता है। उदाहरण के लिए, फ़ैक्टोरियल(10) =10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1.
हम इसके बजाय एक अनाड़ी भाज्य बनाते हैं:घटते क्रम में पूर्णांकों का उपयोग करते हुए, हम संचालन के एक निश्चित रोटेशन के लिए गुणा संचालन को स्वैप करते हैं:इस क्रम में गुणा (*), विभाजित (/), जोड़ें (+) और घटाना (-)।
उदाहरण के लिए, अनाड़ी(10) =10 * 9 / 8 + 7 - 6 * 5 / 4 + 3 - 2 * 1। हालाँकि, ये ऑपरेशन अभी भी अंकगणित के संचालन के सामान्य क्रम का उपयोग करके लागू होते हैं:हम सभी गुणा और भाग करते हैं किसी भी जोड़ या घटाव चरणों से पहले के चरण, और गुणा और भाग के चरणों को बाएँ से दाएँ संसाधित किया जाता है।
आइए इस फ़ंक्शन के लिए जावास्क्रिप्ट में कोड लिखें -
उदाहरण
const clumsy = num => { let k=num; let res = 0, temp=1, i=0; while(k>0){ temp = k; if(k-1>0){ temp*=(k-1); } if(k-2>0){ temp/=(k-2); } if(k-3>0){ if(k===num){ temp+=(k-3); }else{ temp-=(k-3); } } if(k===num){ res = temp; }else{ res = res-temp; } k = k-4; } return res; }; console.log(clumsy(4)); console.log(clumsy(10)); console.log(clumsy(16)); console.log(clumsy(5));
आउटपुट
कंसोल में आउटपुट होगा -
7 11.75 16.609523809523807 7.666666666666668