第一行输入一个数n,第二行输入n个数,第三行输入要查的值。
时间: 2023-05-11 13:04:20 浏览: 259
好的,这是一个关于查找的问题。你可以使用二分查找算法来解决这个问题。以下是一个示例代码:
```
#include <iostream>
using namespace std;
int binarySearch(int arr[], int l, int r, int x) {
if (r >= l) {
int mid = l + (r - l) / 2;
if (arr[mid] == x)
return mid;
if (arr[mid] > x)
return binarySearch(arr, l, mid - 1, x);
return binarySearch(arr, mid + 1, r, x);
}
return -1;
}
int main() {
int n;
cin >> n;
int arr[n];
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
int x;
cin >> x;
int result = binarySearch(arr, 0, n - 1, x);
if (result == -1)
cout << "Element is not present in array";
else
cout << "Element is present at index " << result;
return 0;
}
```
这段代码使用了递归的方式实现了二分查找算法。在输入n个数后,我们将这些数存储在一个数组中,并输入要查找的值x。然后,我们调用binarySearch函数来查找x在数组中的位置。如果找到了x,则返回它在数组中的索引,否则返回-1。最后,我们输出结果。