1. 描述
给定一个数n,如何判断n是否为另一个数的平方,即是否为平方数
2. 代码
#include<iostream> using namespace std; // n^2 = (n-1)^2 +2(n-1) + 1 // n^2 = (n-1)^2 +(2n -1) // n^2 = (n-2)^2 + (2(n-1) -1) + (2n-1) // ······ // ······ // ······ // 推导得到公式:n^2 = 1+3+5+7+······+(2n-1) bool IsSquare(int num) { // 变化步长为2,初值为1,一直减到num不再大于0 for(int i=1; num>0; i+=2) { num -= i; } //如果num减到最后,恰好等于0,就是平方数;反之,就不是 if(num==0) { return true; } else { return false; } } int main() { int num = 0; cin>>num; bool flag=IsSquare(num); cout<<flag<<endl; system("pause"); return 0; }