Computer >> Máy Tính >  >> Lập trình >> lập trình C

Tổng mảng sau khi chia các số từ trước trong C?

Mảng là một chuỗi các phần tử có cùng kiểu dữ liệu. trong bài toán này, chúng ta sẽ xem xét mảng số nguyên để giải quyết vấn đề. trong bài toán này, chúng ta sẽ tìm tổng các Phần tử được tìm thấy bằng cách chia phần tử cho phần tử tiếp tục nó.

Hãy lấy một vài ví dụ để hiểu rõ hơn Vấn đề này -

Ví dụ 1 -

Array : 3 , 5 ,98, 345
Sum : 26

Giải thích - 3 + 5/3 + 98/5 + 345/98 =3 + 1 + 19 + 3 =26

Chúng tôi đã chia từng phần tử với phần tử đứng trước của nó và chỉ xem xét các phần nguyên của các phép chia để tìm tổng.

Ví dụ 2 -

Array : 2, 5 , 8, 11, 43 , 78 , 234
Sum : 13

Giải thích - 2 + 2 + 1 + 1 + 3 + 1 + 3 =13

Thuật toán

Thuật toán này duyệt từng phần tử của mảng. và chia nó cho phần tử đứng trước nó. Sau đó, thêm giá trị thương vào biến tổng.

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

Đây là một thuật toán bốn bước dễ dàng để tìm tổng của mảng sau khi chia các số cho các số trước đó . Chúng ta đã khởi tạo tổng bằng phần tử đầu tiên của mảng vì theo logic, phần tử đầu tiên không có bất kỳ phần tử nào có nghĩa là nó không thể chia cho bất kỳ phần tử nào. vì vậy việc xem xét vòng lặp for sẽ tạo ra lỗi vì chúng tôi sẽ truy cập phần tử ở -1 chỉ mục, điều này là sai.

Ví dụ

#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;
}

Đầu ra

The sum of array after dividing number from previous number is 13.