Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Chương trình C tính tích các phần tử trong đoạn mảng (modulo P)

Giới thiệu

Cho mảng A[], chỉ số trái L, chỉ số phải R và số nguyên tố P. Tính tích các phần tử từ vị trí L đến R (tính từ 1) và lấy modulo P.

Ví dụ

Input: A[] = {1,2,3,4,5,6}, P=29, L=2, R=6 → Output: 24
Input: A[] = {1,2,3,4,5,6}, P=113, L=2, R=5 → Output: 7

Phương pháp

  • Nhập mảng, L, R, P
  • Duyệt từ L đến R (chuyển sang chỉ số 0-based: L-1, R-1)
  • Nhân dồn vào biến ans, mỗi lần lấy modulo P
  • Trả về kết quả

Thuật toán

Hàm calculateProduct(A, L, R, P):
  L = L - 1; R = R - 1
  ans = 1
  Với i từ L đến R:
    ans = ans * A[i]
    ans = ans % P
  Trả về ans

Hàm main:
  A = {1,2,3,4,5,6}, P=29, L=2, R=6
  In calculateProduct(A, L, R, P)

Code C

#include <stdio.h>

int calculateProduct(int A[], int L, int R, int P) {
    int i;
    L = L - 1;  // Chuyển sang 0-based index
    R = R - 1;
    int ans = 1;
    for (i = L; i <= R; i++) {
        ans = ans * A[i];
        ans = ans % P;
    }
    return ans;
}

int main() {
    int A[] = {1, 2, 3, 4, 5, 6};
    int P = 29;
    int L = 2, R = 6;
    printf("%d\n", calculateProduct(A, L, R, P));
    return 0;
}

Kết quả

24