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

Đếm số mảng con tăng chặt trong C++

Cho một mảng chứa các phần tử nguyên. Nhiệm vụ: tính các mảng con từ mảng cho trước, sau đó kiểm tra các phần tử trong mảng con có theo thứ tự tăng chặt hay không. Nếu có thì đếm, ngược lại loại bỏ.

Cách tiếp cận: dừng kiểm tra mảng con nếu phần tử tại vị trí 0 và 1 không theo thứ tự tăng.

Ví dụ

Đầu vào: int a[] = {1, 7, 5}

Đầu ra: Số mảng con tăng chặt: 1

Giải thích: Các mảng con: {1,7,5}, {1,7}, {7,5}. Chỉ {1,7} tăng chặt.

Đầu vào: int a[] = {1, 2, 7, 10}

Đầu ra: Số mảng con tăng chặt: 6

Giải thích: Các mảng con: {1,2}, {1,2,7}, {1,2,7,10}, {2,7}, {2,7,10}, {7,10} - tất cả tăng chặt.

Phương pháp sử dụng

  • Khai báo mảng, nhập phần tử, truyền vào hàm countIncSubarrays(a, a.length).
  • Trong hàm khởi tạo biến đếm.
  • Vòng lặp FOR i từ 0 đến độ dài mảng.
  • Vòng lặp FOR j từ i+1 đến độ dài mảng.
  • Nếu a[j] > a[j-1] tăng đếm, ngược lại break.
  • In kết quả.

Ví dụ mã nguồn (Java)

import java.util.*; 

class testqwe { 
    static int MAX = 4; 
    static int a[] = new int[MAX]; 
    static Scanner scan = new Scanner(System.in); 
    static int countIncSubarrays(int a[], int n) { 
        int count = 0; 
        for (int i = 0; i < n; i++) { 
            for (int j = i + 1; j < n; j++) { 
                if (a[j] > a[j - 1]) 
                    count++; 
                else 
                    break; 
            } 
        } 
        return count; 
    } 
    public static void main(String[] args) { 
        for (int i = 0; i < a.length; i++) { 
            a[i] = scan.nextInt(); 
        } 
        int result = countIncSubarrays(a, a.length); 
        System.out.println("Count of strictly increasing subarrays is " + result); 
    } 
}

Chạy mã trên cho kết quả:

Kết quả

Count of strictly increasing subarrays is 6