非常基础的一道题
#include <stdio.h>
void Search (int List[], int Target, int low, int high);
int main ()
{
int i, List[1000], Target[5000], L_amount, T_amount;
scanf ("%d", &L_amount);
for (i = 0; i < L_amount; i++) scanf ("%d", &List[i]);
scanf ("%d", &T_amount);
for (i = 0; i < T_amount; i++) scanf ("%d", &Target[i]);
for (i = 0; i < T_amount; i++)
{
Search (List, Target[i], 0, L_amount - 1);
}
return 0;
}
void Search (int List[], int Target, int low, int high)
{
int mid = (low + high)/2;
if (low > high) printf ("No\n");
else
{
if (List[mid] == Target)
{
printf ("Yes\n");
}
else if (List[mid] > Target)
{
Search (List, Target, low, mid - 1);
}
else if (List[mid] < Target)
{
Search (List, Target, mid + 1, high);
}
}
return ;
}