前提
int FalseCoin(int a[], int left, int right)
//设 left,right为a[]逻辑地址
{
int mid;
int temp=0;
if((left+right+1)%2)
{
temp=right;
right=right-1;
mid = (left + right+1) / 2;
}
else
min=(left + right+1) / 2;
int sum1 = 0, sum2 = 0;
int i;
if ((right-left) == 1)//只有两枚硬币,轻者为伪币,等重则无伪币
return (a[left] < a[right]) ? left : (a[left] > a[right]) ? right : -1;
//多于两枚硬币,将数组分成两半,分而治之
for (i=left; i<=mid; i++)
sum1 += a[i];
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余1页未读,立即下载