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

Số cặp từ N số tự nhiên đầu tiên có tổng chia hết cho K C++

Cho N, K. Đếm cặp từ 1..N có tổng chia hết cho K.

Ví dụ: N=3, K=2 → 1 cặp (1,3) vì 1+3=4 chia hết 2.

Giải thuật

  • Tạo mảng 1..N
  • count = 0
  • Hai vòng lặp: sum = arr[i]+arr[j], nếu sum%K==0 thì count++
  • Trả về count

Ví dụ minh họa

#include <bits/stdc++.h> 
using namespace std; 

int get2PowersCount(vector<int> arr, int N, int K) { 
    int count = 0; 
    for (int i = 0; i < N; i++) { 
        for (int j = i + 1; j < N; j++) { 
            int sum = arr[i] + arr[j]; 
            if (sum % K == 0) { count++; } 
        } 
    } 
    return count; 
} 

int main() { 
    vector<int> arr; 
    int N = 10, K = 5; 
    for (int i = 1; i <= N; i++) arr.push_back(i); 
    cout << get2PowersCount(arr, N, K) << endl; 
    return 0; 
} 

Đầu ra

9