Thuật toán tìm giá trị lớn nhất trong mảng có dạng 5^k bằng code C++

0
328
tìm giá trị lớn nhất trong mảng có dạng 5^k
tìm giá trị lớn nhất trong mảng có dạng 5^k

Bài toán: Cho mảng một chiều các số nguyên. Hãy viết hàm tìm giá trị lớn nhất trong mảng có dạng 5^k . Nếu mảng không tồn tại giá trị dạng 5^k thì hàm sẽ trả về giá trị 0.

  • Input
  • Output
  • Input
  • Output

  •  

Ý tưởng tìm giá trị lớn nhất trong mảng có dạng 5^k

  • Đầu tiên các bạn viết một hàm check để kiểm tra số n có phải là số nguyên dạng 5^k hay không. Nếu số n có dạng 5^k thì trả về giá trị true, ngược lại thì trả về false.
  • Ta khởi tạo biến max một giá trị rất nhỏ, sau đó tiến hành duyệt hết tất cả các phần tử của mảng.
  • Nếu phần tử nào thỏa mãn hai tính chất lớn hơn max và có dạng 5^k thì ta gán cho max giá trị của phần tử đó.
  • Sau khi duyệt hết các phần tử của mảng nếu giá trị max bằng giá trị khởi tạo ban đầu, tức là mảng không tồn tại số nguyên dạng 5^k thì ta trả về không. Nếu không thì ta trả về giá trị của max.

  •  

Xây dựng hàm tìm giá trị lớn nhất trong mảng có dạng 5^k

  • Hàm check sẽ trả về kiểu bool.
  • Đầu tiên ta khởi tạo biến s có giá trị bằng 1. Nếu s < n thì ta lại gán s = s*5; cho đến khi s>=n thì ngừng.
  • Ta kiểm tra xem s có bằng với n hay không. Nếu có thì trả về giá trị true, ngược lại thì trả về false.

Code tham khảo

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

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

avatar
  Subscribe  
Notify of