zoukankan      html  css  js  c++  java
  • 蓝桥杯--四平方和

    问题描述

    四平方和定理,又称为拉格朗日定理:每个正整数都可以表示为至多四个正整数的平方和。如果把0包括进去,就正好可以表示为四个数的平方和。 
    比如: 
    5=0*0+0*0+1*1+2*2 
    7=1*1+1*1+1*1+2*2 
    则对于一个给定的正整数n,可以表示为:n = a^2 + b^2 + c^2 + d^2 
    你需要求出 字典序 最小的一组解 a,b,c,da,b,c,d。 
    输入格式 
    程序输入为一个正整数 (N<=5000000) 
    输出格式 
    输出四个非负整数 a,b,c,d中间用空格分开。 
    样例输入1 

    样例输出1 
    0 0 1 2 
    样例输入2 
    12 
    样例输出2 
    0 2 2 2

    C语言代码

    #include<stdio.h>
    #include<stdlib.h>
    using namespace std;
    int main(){
        int n;
        scanf("%d",&n);
        for(int a=0;a<2500;a++){
            for(int b=0;b<2500;b++){
                for(int c=0;c<2500;c++){
                    for(int d=0;d<2500;d++){
                        if(a*a+b*b+c*c+d*d==n){
                            printf("%d %d %d %d
    ",a,b,c,d);
                            exit(0);
                        }
                    }
                }
            }
        }
        return 0;
    } 
    
    运行超时!!!
    #include<stdio.h>
    #include<stdlib.h>
    #include<math.h>
    using namespace std;
    int main(){
        int n,d1;
        double d;
        scanf("%d",&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++){
                    d=n-(a*a+b*b+c*c);
                    d1=int(sqrt(d));
                    if(d==d1*d1){
                        printf("%d %d %d %d",a,b,c,d1);
                            exit(0);
                    }
                            
                    
                }
            }
        }
        return 0;
    } 
    
    运行正常
  • 相关阅读:
    Pearls POJ 1260 DP
    The Cow Lexicon DP
    矩形嵌套
    POJ 3061 Subsequence 尺取
    动物统计加强版 Trie 树
    codevs 1422 河城荷取
    cogs 944. [東方S3] 藤原妹红
    codevs 2830 蓬莱山辉夜
    cogs 998. [東方S2] 帕秋莉·诺蕾姬
    cogs 920. [東方S1] 琪露诺
  • 原文地址:https://www.cnblogs.com/pythonbigdata/p/8540351.html
Copyright © 2011-2022 走看看