Câu 9. Cho dãy số a1, a2, aN (2<=N<=10°, |aj| <= 10. Tìm số lượng cực tiểu địa phương. ai được gọi là cực tiểu địa phương nếu:
+Nếui=1 thì a[1]<a[2];
+Nếui=N thì a[N]<a[N-1]
+ Ngược lại của 2 điều kiện trên thì a[i-1]>a[i] <a[i+1]
Câu 10. Tương tự câu 9, in ra các vị trị của cực đại địa phương theo thứ tự tăng dần nếu có.
Bằng cách nhấp vào Đăng nhập, bạn đồng ý Chính sách bảo mật và Điều khoản sử dụng của chúng tôi. Nếu đây không phải máy tính của bạn, để đảm bảo an toàn, hãy sử dụng Cửa sổ riêng tư (Tab ẩn danh) để đăng nhập (New Private Window / New Incognito Window).
Câu 9. Để tìm số lượng cực tiểu địa phương của một dãy số, bạn có thể sử dụng một vòng lặp for để duyệt qua các phần tử của dãy và kiểm tra điều kiện của cực tiểu địa phương. Nếu một phần tử thỏa mãn điều kiện, bạn có thể tăng biến đếm lên một đơn vị. Sau khi kết thúc vòng lặp, bạn có thể in ra giá trị của biến đếm.
#include <iostream>
using namespace std;
int main() {
int n; // số lượng phần tử của dãy
cin >> n;
int a[n]; // mảng chứa các phần tử của dãy
for (int i = 0; i < n; i++) {
cin >> a[i];
}
int count = 0; // biến đếm số lượng cực tiểu địa phương
for (int i = 0; i < n; i++) {
if (i == 0 && a[i] < a[i + 1]) { // kiểm tra điều kiện cho phần tử đầu tiên
count++;
}
else if (i == n - 1 && a[i] < a[i - 1]) { // kiểm tra điều kiện cho phần tử cuối cùng
count++;
}
else if (i > 0 && i < n - 1 && a[i - 1] > a[i] && a[i] < a[i + 1]) { // kiểm tra điều kiện cho các phần tử còn lại
count++;
}
}
cout << "Số lượng cực tiểu địa phương là: " << count << endl;
return 0;
}
Câu 10. Để in ra các vị trí của cực đại địa phương theo thứ tự tăng dần, bạn có thể sử dụng một vòng lặp for tương tự như câu trước, nhưng thay vì kiểm tra điều kiện của cực tiểu địa phương, bạn sẽ kiểm tra điều kiện của cực đại địa phương. Nếu một phần tử thỏa mãn điều kiện, bạn có thể in ra chỉ số của nó (tính từ 1) và một khoảng trắng.
#include <iostream>
using namespace std;
int main() {
int n; // số lượng phần tử của dãy
cin >> n;
int a[n]; // mảng chứa các phần tử của dãy
for (int i = 0; i < n; i++) {
cin >> a[i];
}
cout << "Các vị trí của cực đại địa phương theo thứ tự tăng dần là: ";
for (int i = 0; i < n; i++) {
if (i == 0 && a[i] > a[i + 1]) { // kiểm tra điều kiện cho phần tử đầu tiên
cout << i + 1 << " ";
}
else if (i == n - 1 && a[i] > a[i - 1]) { // kiểm tra điều kiện cho phần tử cuối cùng
cout << i + 1 << " ";
}
else if (i > 0 && i < n - 1 && a[i - 1] < a[i] && a[i] > a[i + 1]) { // kiểm tra điều kiện cho các phần tử còn lại
cout << i + 1 << " ";
}
}
cout << endl;
return 0;
}
Tham gia Cộng đồng Lazi trên các mạng xã hội | |
Fanpage: | https://www.fb.com/lazi.vn |
Group: | https://www.fb.com/groups/lazi.vn |
Kênh FB: | https://m.me/j/AbY8WMG2VhCvgIcB |
LaziGo: | https://go.lazi.vn/join/lazigo |
Discord: | https://discord.gg/4vkBe6wJuU |
Youtube: | https://www.youtube.com/@lazi-vn |
Tiktok: | https://www.tiktok.com/@lazi.vn |
Hôm nay bạn thế nào? Hãy nhấp vào một lựa chọn, nếu may mắn bạn sẽ được tặng 50.000 xu từ Lazi
Vui | Buồn | Bình thường |