Hướng dẫn giải của LIST05: Các số lớn nhất


Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người viết lời giải.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.

Hướng dẫn giải

Cho dãy ~n~ số nguyên, hãy tìm số lớn nhất trong dãy và số lần số đó xuất hiện.

Cách làm

Làm hai bước: trước hết tìm số lớn nhất, sau đó đếm số lần nó xuất hiện trong dãy.

  • Bước 1: Đọc dãy vào mảng ~a~. Tìm ~lonnhat~ bằng cách duyệt và so sánh.
  • Bước 2: Duyệt lại dãy, mỗi lần gặp ~lonnhat~ thì tăng biến ~dem~.
  • Bước 3: In ~lonnhat~ và ~dem~.

Bẫy: phải tìm xong số lớn nhất rồi mới đếm, không đếm ngay trong lúc tìm.

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

int main() {
    int n;
    cin >> n;
    int a[1005];
    for (int i = 0; i < n; i++) {
        cin >> a[i];
    }
    // Tìm số lớn nhất trước
    int lonnhat = a[0];
    for (int i = 1; i < n; i++) {
        if (a[i] > lonnhat) {
            lonnhat = a[i];
        }
    }
    // Đếm số lần số lớn nhất xuất hiện
    int dem = 0;
    for (int i = 0; i < n; i++) {
        if (a[i] == lonnhat) {
            dem++;
        }
    }
    cout << lonnhat << " " << dem << "\n";
    return 0;
}

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.