这题真心够了,找规律的题,上网看了一下神人的思路,就是把整个三角形分为三个三角形,即同方向的边提出来组成一个,之后求两元素在其中隔几条边,然后相加就可以了,但是,题目居然没说有多组输入,或者我漏掉了,让我各种WA后还在赞叹这题真有水平!!代码如下:
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
long long m,n,i;
long long tm1,tn1,tm2,tn2,tm3,tn3;
while(cin>>m>>n){
tm1=(long long)ceil(sqrt((double)m));
tn1=(long long)ceil(sqrt((double)n));
tm2=(m-((tm1-1)*(tm1-1)+1))/2;
tn2=(n-((tn1-1)*(tn1-1)+1))/2;
tm3=(tm1*tm1-m)/2;
tn3=(tn1*tn1-n)/2;
cout<<abs(tn1-tm1)+abs(tn2-tm2)+abs(tn3-tm3)<<endl;
}
return 0;
}