#include<iostream.h>
#include<malloc.h>
int get_false_coin(int coin[],int low,int high)
{
int i,sum1=0,sum2=0,sum3=0;
if(low==high-1)
{
if(coin[low]<coin[high])
return low;
else
return high;
}
if((high-low+1)%2==0)
{
for(i=low;i<=low+(high-low)/2;i++)
sum1=sum1+coin[i];
for(i=low+(high-low)/2+1;i<=high;i++)
sum2=sum2+coin[i];
if(sum1<sum2)
return get_false_coin(coin,low,low+(high-low)/2);
else
return get_false_coin(coin,low+(high-low)/2+1,high);
}
else
{
for(i=low;i<=low+(high-low)/2-1;i++)
sum1=sum1+coin[i];
for(i=low+(high-low)/2+1;i<=high;i++)
sum2=sum2+coin[i];
sum3=coin[low+(high-low)/2];
if(sum1==sum2)
return low+(high-low)/2;
if(sum1<sum2)
return
纯C语言:分治假币问题源码
最新推荐文章于 2023-09-14 07:30:00 发布