蓝桥杯四平方和,最佳写法
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int main()
{
int n;
scanf("%d",&n);//输入主角
int maxn=sqrt(n);//开方,类似于二分的思想
int flag=1;//定义标准符
for(int a=0;a<=maxn;a++)
{
for(int b=a;b<=maxn;b++)
{
for(int c=b;c<=maxn;c++)
{
double d=sqrt(n-a*a-b*b-c*c);
if(d==(int)d){//如果OK,直接返回
printf("%d %d %d %d\n",a,b,c,(int)d);
flag=0;
break;
}
}
if(flag==0)break;//如果ok,直接返回
}
if(flag==0)break;//如果ok,直接返回
}
return 0;
}