题目如下

了解立方和公式即可

#include<cmath>
class ASum
{public:static long long findNb(long long m){//判断m是否是完全平方数
// if(m == sqrt(m)*sqrt(m)){
// int k = m;
// }
// else{return -1};
// }//sqrt()返回的是doule,直接== 比较可能出错(浮点数精度问题)long long root = (long long)(sqrt(m) + 0.5); //四舍五入if(m != root*root) return -1;long long discriminant = 1 + 8*root;long long sqrt_dis = (long long)(sqrt(discriminant) +0.5);if(sqrt_dis * sqrt_dis != discriminant) return -1; // 验证完全平方long long n = (sqrt_dis - 1 )/ 2;if(n*(n+1)/2 != root ) return -1;return n;}
};
