Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

Array sum หลังจากหารตัวเลขจากก่อนหน้าใน C?


Array คือลำดับขององค์ประกอบประเภทข้อมูลเดียวกัน ในปัญหานี้เราจะพิจารณาอาร์เรย์จำนวนเต็มเพื่อแก้ปัญหา ในปัญหานี้ เราจะหาผลรวมขององค์ประกอบที่พบโดยหารองค์ประกอบออกจากองค์ประกอบที่ดำเนินการ

มาดูตัวอย่างเพื่อทำความเข้าใจปัญหานี้กันดีกว่า -

ตัวอย่างที่ 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.