题意简述
思路
本题就是根据题意直接模拟的大水题。。。
但是,有几个细节:
-
当 为 是需要特判,输出 ;
-
永远不能完成的要特判,输出 ;
-
的特判在 后;
-
全部使用
long long
。
参考代码(仅供参考)
#include <bits/stdc++.h>
using namespace std;
long long N , Ans , Now = 2;
int main() {
ios::sync_with_stdio(false);
cin >> N;
if(N == 2) {
cout << 0 << endl;
return 0;
}
if(sqrt(N) != ceil(sqrt(N))) {
cout << -1 << endl;
return 0;
}
for(long long i = sqrt(N); i >= 2; i--) {
Ans += i * i - Now + 1;
Now = i;
}
cout << Ans << endl;
return 0;
}