Em không hiểu trình biên dịch của em bị lỗi sao mà dù em xin code đúng rồi mà test lại sai.
Đây là code và đề bài ạ#include <iostream>
using namespace std;
int binary_search (int *a, int n, int x)
{
int first = 0, last = n - 1;
int middle = (first + last) /2;
while (first <= last)
{
if(a[middle] < x)
{
first = middle + 1;
}
else if(a[middle] == x)
{
while (a[middle +1] == x)
{
middle++;
return middle + binary_search(&a[middle], last - middle +1, x);
}
return middle;
}
else
{
last = middle - 1;
}
middle = (first + last) / 2;
}
return -1;
}
int main()
{
int n; cin >> n;
int *a = new int [n];
for (int i = 0; i < n; i++) cin >> a[i];
int m; cin >> m;
int *b = new int [m];
for (int i = 0; i < m; i++)
{
cin >> b[i];
cout << binary_search(a, n, b[i]) << endl;
}
return 0;
}
Đây là đề ạ
Screen Shot 2018-03-15 at 4.48.20 AM.png
Khi test trên Xcode cuả em lỗi như vầy ạ
Screen Shot 2018-03-15 at 4.50.04 AM.png
Đây là code và đề bài ạ#include <iostream>
using namespace std;
int binary_search (int *a, int n, int x)
{
int first = 0, last = n - 1;
int middle = (first + last) /2;
while (first <= last)
{
if(a[middle] < x)
{
first = middle + 1;
}
else if(a[middle] == x)
{
while (a[middle +1] == x)
{
middle++;
return middle + binary_search(&a[middle], last - middle +1, x);
}
return middle;
}
else
{
last = middle - 1;
}
middle = (first + last) / 2;
}
return -1;
}
int main()
{
int n; cin >> n;
int *a = new int [n];
for (int i = 0; i < n; i++) cin >> a[i];
int m; cin >> m;
int *b = new int [m];
for (int i = 0; i < m; i++)
{
cin >> b[i];
cout << binary_search(a, n, b[i]) << endl;
}
return 0;
}
Đây là đề ạ
Screen Shot 2018-03-15 at 4.48.20 AM.png
Khi test trên Xcode cuả em lỗi như vầy ạ
Screen Shot 2018-03-15 at 4.50.04 AM.png
Comment