这个题的意思是——从A地到B地,第一步为1,最后一步为1,两步最大相差1,求最少的步数
我的解法是——从两边开始,依次往中间逼近,然后特判逼近至中间部分出现的几种情况
#include <stdio.h>
int main()
{
int i,m,n,t,step,count;
scanf("%d",&t);
for(i=0; i<t; i++)
{
scanf("%d%d",&m,&n);
step=1;
count=0;
while(1)
{
if(m>=n)
{
printf("%d\n",2*count);
break;
}
else if(n-m<=step)
{
printf("%d\n",2*count+1);
break;
}
else
{
m+=step;
n-=step;
step++;
count++;
}
}
}
return 0;
}