四平方和

Posted kyledeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了四平方和相关的知识,希望对你有一定的参考价值。

技术分享图片

解析

基本解法是暴力枚举,如果暴力枚举四个数的话程序的复杂度就过高了,因此枚举出a,b,c,由此可以计算出c^2,如果c^2开方过后的值(定为flag)再平方后不等于c^2(即根号下c不为整数),那么这组数据就不合法,继续枚举。

反之则直接输出。

代码

#include<bits/stdc++.h>
using namespace std;
int n;
int main()
{
    cin>>n;
    for(int a=0;a<=3000;a++)
    {
        for(int b=a;b<=3000;b++)
        {
            for(int c=b;c<=3000;c++)//题目给的最大值是5000000,所以只考虑根号5000000附近向上取枚举极限 
            {
                int flag=n-(a*a+b*b+c*c);
                int d=sqrt(flag);
                if(d*d!=flag) continue;
                else {
                cout<<a<<" "<<b<<" "<<c<<" "<<d<<endl;
                goto u;
          }
            }
        }
    }
    u:return 0;
 } 

 

以上是关于四平方和的主要内容,如果未能解决你的问题,请参考以下文章

四平方和定理

四平方和 -- 蓝桥杯

四平方和,激光炸弹

四平方和

四平方和

蓝桥杯 四平方和