Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 7

#include <iostream>

using namespace std;

int binarySearch(int arr[], int left, int right, int x) {


if (right >= left) {
int mid = left + (right - left) / 2;

// Nếu phần tử có ở giữa


if (arr[mid] == x)
return mid;

// Nếu phần tử nhỏ hơn giá trị giữa, tìm kiếm trong nửa bên trái
if (arr[mid] > x)
return binarySearch(arr, left, mid - 1, x);

// Nếu phần tử lớn hơn giá trị giữa, tìm kiếm trong nửa bên phải
return binarySearch(arr, mid + 1, right, x);
}

// Nếu không tìm thấy phần tử trong mảng


return -1;
}

int main() {
int arr[] = {2, 3, 4, 10, 40};
int n = sizeof(arr) / sizeof(arr[0]);
int x = 10;
int result = binarySearch(arr, 0, n - 1, x);
if (result == -1)
cout << "Phan tu khong co trong mang";
else
cout << "Phan tu co o vi tri: " << result;
return 0;
}

2.#include <iostream>
using namespace std;

int main() {
int n;
do {
cout << "Nhap so phan tu cua mang A (0 < n < 100): ";
cin >> n;
} while (n <= 0 || n >= 100);

int A[n], B[n], j = 0;

cout << "Nhap cac phan tu cua mang A: ";


for (int i = 0; i < n; i++) {
cin >> A[i];
if (A[i] % 2 != 0) {
B[j++] = A[i];
}
}
cout << "Cac phan tu le trong mang B: ";
for (int i = 0; i < j; i++) {
cout << B[i] << " ";
}

return 0;
}
3.#include <iostream>
#include <algorithm>
using namespace std;

int binarySearch(int arr[], int left, int right, int x) {


if (right >= left) {
int mid = left + (right - left) / 2;
if (arr[mid] == x)
return mid;
if (arr[mid] > x)
return binarySearch(arr, left, mid - 1, x);
return binarySearch(arr, mid + 1, right, x);
}
return -1;
}

int main() {
int n;
do {
cout << "Nhap so phan tu cua mang A (0 < n < 100): ";
cin >> n;
} while (n <= 0 || n >= 100);

int A[n];
cout << "Nhap cac phan tu cua mang A: ";
for (int i = 0; i < n; i++) {
cin >> A[i];
}

sort(A, A + n);

cout << "Mang A sau khi sap xep tang dan: ";
for (int i = 0; i < n; i++) {
cout << A[i] << " ";
}
cout << endl;

int x;
cout << "Nhap gia tri can tim va xoa: ";
cin >> x;

int index = binarySearch(A, 0, n - 1, x);


if (index != -1) {
for (int i = index; i < n - 1; i++) {
A[i] = A[i + 1];
}
n--;
cout << "Mang A sau khi xoa " << x << ": ";
for (int i = 0; i < n; i++) {
cout << A[i] << " ";
}
} else {
cout << "Khong tim thay " << x << " trong mang.";
}

return 0;
}
4.#include <iostream>
#include <cstring>
using namespace std;

int main() {
char S[100];
cout << "Nhap chuoi S: ";
cin.getline(S, 100);

int spaceCount = 0, digitCount = 0, upperCaseCount = 0;

for (int i = 0; i < strlen(S); i++) {


if (isspace(S[i]))
spaceCount++;
else if (isdigit(S[i]))
digitCount++;
else if (isupper(S[i]))
upperCaseCount++;
}

cout << "So luong ki tu khoang trang: " << spaceCount << endl;
cout << "So luong ki tu so: " << digitCount << endl;
cout << "So luong ki tu chu cai in hoa: " << upperCaseCount << endl;

return 0;
}

#include <iostream>
#include <cstring>
using namespace std;

int main() {
char S[100];
cout << "Nhap chuoi S: ";
cin.getline(S, 100);

int spaceCount = 0, digitCount = 0, upperCaseCount = 0;

// Dùng thuật toán tìm kiếm để đếm ký tự khoảng trống, ký tự số và chữ cái in
hoa
for (int i = 0; i < strlen(S); i++) {
// Kiểm tra ký tự khoảng trống
if (S[i] == ' ' || S[i] == '\t' || S[i] == '\n' || S[i] == '\v' || S[i] == '\f' || S[i] == '\r') {
spaceCount++;
}
// Kiểm tra ký tự số
else if (S[i] >= '0' && S[i] <= '9') {
digitCount++;
}
// Kiểm tra chữ cái in hoa
else if (S[i] >= 'A' && S[i] <= 'Z') {
upperCaseCount++;
}
}

cout << "So luong ki tu khoang trang: " << spaceCount << endl;
cout << "So luong ki tu so: " << digitCount << endl;
cout << "So luong ki tu chu cai in hoa: " << upperCaseCount << endl;

return 0;
}
********
1.

You might also like