题目来源 计蒜客程序设计竞赛基础课(蓝桥杯省赛)
算法标签 枚举
题目描述
思路
1.压到Sqrt
2.利用d省去一重循环
题目代码
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int N;
cin >> N;
for (int a = 0; a < sqrt(N); a++)
for (int b = 0; b < sqrt(N); b++)
for (int c = 0; c < sqrt(N); c++)
{
int d = sqrt(N - a * a - b * b - c * c); //减少时间复杂度
if (N == a * a + b * b + c * c + d * d)
{
cout << a << " " << b << " " << c << " " << d << endl;
return 0; //因为只要一个答案就好 退出 卡掉
}
}
}