P8635 [蓝桥杯 2016 省 AB] 四平方和 题解
分析
【主体思路】
对于每个
【边界判断】
因为题目保证
代码
#include<bits/stdc++.h>
using namespace std;
int n;
int check(int a,int b,int c,int d){return a*a+b*b+c*c+d*d;}
//求a^2+b^2+c^2+d^2
int main()
{
cin>>n;
for(int i=0;;i++)
{
if(check(i,i,i,i)>n) break;//边界判断
for(int j=i;;j++)
{
if(check(i,j,j,j)>n) break;
for(int k=j;;k++)
{
if(check(i,j,k,k)>n) break;
else
{
int s=sqrt(n-check(i,j,k,0));
if(check(i,j,k,s)==n) return cout<<i<<" "<<j<<" "<<k<<" "<<s,0;
}
}
}
}
}