四平方和 -- 蓝桥杯

Posted 满天星!

tags:

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

四平方和 – 蓝桥杯

题目描述:
四平方和定理,又称为拉格朗日定理:
每个正整数都可以表示为至多 4 个正整数的平方和。
如果把 0 包括进去,就正好可以表示为 4 个数的平方和。
比如:
5=02+02+1^2 + 2^2
7=12+12+1^2 +2^2
对于一个给定的正整数,可能存在多种平方和的表示法。
要求你对 4 个数排序:
0≤a≤b≤c≤d
并对所有的可能表示法按 a,b,c,d 为联合主键升序排列,最后输出第一个表示法。

输入格式
输入一个正整数 N。

输出格式
输出4个非负整数,按从小到大排序,中间用空格分开。

数据范围
0<N<5∗10^6
输入样例:

5

输出样例:

0 0 1 2

AC代码

#include<bits/stdc++.h>
using namespace std;
const int N=5*1e6+10;
int C[N],D[N];
int main()

    int n;
    cin>>n;
    memset(C,-1,sizeof C);
    for(int c=0;c*c<=n;c++)
    for(int d=c;c*c+d*d<=n;d++)
    
        int sum=c*c+d*d;
        if(C[sum]==-1)
        
            C[sum]=c,D[sum]=d;
        
    
    for(int a=0;a*a<=n;a++)
    for(int b=a;a*a+b*b<=n;b++)
    
        int sum=n-a*a-b*b;
        if(C[sum]!=-1)
        
            cout<<a<<' '<<b<<' '<<C[sum]<<' '<<D[sum]<<endl;
            return 0;
        
    

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

四平方和 -- 蓝桥杯

2016年第七届蓝桥杯 - 省赛 - C/C++大学A组 - H. 四平方和

蓝桥杯——我该如何枚举

蓝桥杯国赛真题04python输出平方 蓝桥杯青少年组python编程 蓝桥杯国赛真题解析

蓝桥杯每日一真题—— [蓝桥杯 2021 省 AB2] 完全平方数(数论,质因数分解)

蓝桥杯真题平方序列