सामान्य रूप से, पॉजिटिव इंटीजर n का फैक्टोरियल n से कम या बराबर सभी पॉजिटिव इंटीजर्स का गुणनफल होता है। उदाहरण के लिए, factorial(10) = 10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1।
हम इसके बजाय एक क्लम्जी फैक्टोरियल बनाते हैं: घटते क्रम में इंटीजर्स का उपयोग करके, हम मल्टीप्लाई ऑपरेशन्स को ऑपरेशन्स के एक निश्चित रोटेशन से बदल देते हैं: मल्टीप्लाई (*), डिवाइड (/), ऐड (+) और सब्ट्रैक्ट (-) इस क्रम में।
उदाहरण के लिए, clumsy(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