刚开始做这道题的时候,方法很多种,但是哪一种更好呢,如果知道开方的话就很容易了,开方之后,两个数是相等的,相差是0,但是很多数是没办法整数开方,那么同样道理,开方相差最小,那么无法开方,那最小肯定是在开方上下。 #include<iostream> #include<cmath> using namespace std; int main(){ int n; while(cin>>n){ int k=sqrt(n); int i=k; for(;i>0;i--){ ...