ऐरे एक ही डेटा प्रकार के तत्वों का एक क्रम है। इस समस्या में हम समस्या को हल करने के लिए पूर्णांक सरणी पर विचार करने जा रहे हैं। इस समस्या में हम तत्व को आगे बढ़ने वाले तत्व से विभाजित करके पाए गए तत्वों का योग खोजने जा रहे हैं।
आइए इस समस्या को बेहतर ढंग से समझने के लिए कुछ उदाहरण लेते हैं -
उदाहरण 1 -
Array : 3 , 5 ,98, 345 Sum : 26
स्पष्टीकरण -3 + 5/3 + 98/5 + 345/98 =3 + 1 + 19 + 3 =26
हमने प्रत्येक तत्व को उसके पूर्ववर्ती तत्व से विभाजित किया है और योग ज्ञात करने के लिए विभाजनों के केवल पूर्णांक भागों पर विचार किया है।
उदाहरण 2 -
Array : 2, 5 , 8, 11, 43 , 78 , 234 Sum : 13
स्पष्टीकरण − 2 + 2 + 1 + 1 + 3 + 1 + 3 =13
एल्गोरिदम
यह एल्गोरिथम सरणी के प्रत्येक तत्व को पार करता है। और इसे पूर्ववर्ती तत्व से विभाजित करें। फिर, भागफल मान को योग चर में जोड़ता है।
Input : Array - int arr[] Output : int sum
Step 1: Initialize sum = arr[0] Step 2: for(i = 1 to size of arr ) follow step 3 Step 3 : sum = sum + (arr[i]/arr[i-0] ) Step 4: print the sum
पिछली संख्याओं से संख्याओं को विभाजित करने के बाद सरणी का योग खोजने के लिए यह एक आसान चार चरण एल्गोरिथम है . हमने सरणी के पहले तत्व द्वारा योग को प्रारंभ किया है क्योंकि तर्क के अनुसार पहले तत्व में कोई तत्व नहीं है जिसका अर्थ है कि इसे किसी भी तत्व से विभाजित नहीं किया जा सकता है। इसलिए लूप के लिए विचार करने से एक त्रुटि उत्पन्न होती है क्योंकि हम तत्व को -1 इंडेक्स पर एक्सेस करेंगे जो कि गलत है।
उदाहरण
#include<stdio.h> int main() { int arr[] = { 2, 5 , 8, 11, 43 , 78 , 234 }; int n = sizeof(arr)/sizeof(arr[0]); int sum = arr[0]; for (int i = 1; i < n; i++) { sum += arr[i] / arr[i - 1]; } printf("The sum of array after dividing number from previous numbers is %d \n", sum); return 0; }
आउटपुट
The sum of array after dividing number from previous number is 13.