Tìm chữ số xuất hiện ít nhất trong một mảng bằng C++

0
710

Bài toán: Cho mảng một chiều các số nguyên. Hãy viết hàm tìm chữ số xuất hiện ít nhất trong mảng đã cho. Trong trường hợp có hai hay nhiều chữ số có số lần xuất hiện bằng nhau thì in ra chữ số nhỏ nhất.

Ví dụ:

  • Input:

Mình xin 5 phút quảng cáo nha =))
  • Output:

Nhận xét:

  • Chữ số 1 xuất hiện 4 lần.
  • Chữ số 2 xuất hiện 2 lần.
  • Chữ số 3 xuất hiện 2 lần.
  • Chữ số 5 xuất hiện 1 lần.

Ý tưởng tìm chữ số xuất hiện ít nhất trong mảng

  • Đầu tiên các bạn dùng một mảng index[10] để lưu giá trị xuất hiện từng chữ số của mảng.
  • Duyệt qua tất cả các phần tử của mảng, với mỗi phần tử ta sẽ lấy ra từng chữ số rồi lưu giá trị xuất hiện của chữ số đó vào mảng index. Lưu ý ta nên lấy abs(a[i]) để đề phòng trường hợp a[i] âm, còn lấy từng chữ số ra thì ta nên dùng vòng lặp do while vì nếu a[i] = 0 thì ta vẫn đến được sự xuất hiện của số 0.
  • Sau đó ta thực hiện tìm giá trị min trong mảng index. Giá trị của min phải lớn hơn 0 vì nếu bằng 0 thì chữ số đó sẽ không xuất hiện trong mảng. Dùng một biến x_min để lưu vị trí của giá trị min trong index.
  • Vị trí x_min chính là chữ số xuất hiện ít nhất trong mảng.
  • Lưu ý ta nên khởi tạo giá trị min thật lớn để chương trình có thể tìm được giá trị nhỏ nhất trong mảng. Nếu các bạn khởi tạo min = 0 thì mặc nhiên chương trình sẽ không thể tìm được giá trị nhỏ nhất ( khác 0 ) trong mảng.

Code tham khảo

Sau khi chạy chương trình trên ta nhận được kết quả sau

Bài viết mình đến đây là kết thúc. Cám ơn các bạn đã theo dõi !

avatar
  Subscribe  
Notify of