2 3
-1 1
題目知道y*y - x*x = n ----> (y-x)*(y+x) = n 並且(y-x)和(y+x)同奇偶所
以根據這個特性就可以做了。但是我就不明白這個題把n定義成long long int 為什麼就
是無休止的WA,幾個小時不用干別的了,就在那裡想哪裡出錯了。萬念俱灰的把long
long去掉交居然就AC了,搞不懂........
#include#include #include #include #include #include #include using namespace std; int n; void maxx(int &a,int &b) { if(a=1;i--) { if(n%i == 0) { x = i; y = n/i; if(x!=y) { maxx(x,y); if((x%2 == 0 && y%2 == 0) || (x%2 == 1 && y%2 == 1)) { flag = 1; int px = (x-y)/2; if(minn>px) { minn = px; } } } } } if(flag == 0) { printf("-1\n"); } else { printf("%d\n",minn); } } return 0; }