先sort下然后algorithm里有个库函数调用一下do while 就是全排列了 bool isSq(int k) { if ((int)sqrt(k) == sqrt(k)) return true; return false; } int perfectArrayNum(vector < int > array) { sort(array.begin(), array.end()); int sum = 0; do { int flag = 1; for (int i = 0; i < array.size()-1; ++i) { if (isSq(array[i] + array[i + 1])); else { flag = 0; break; } } if (flag == 1) ++sum; } while (next_permutation(array.begin(), array.end())); return sum; }
1 1
牛客网
牛客企业服务