首页 > 代码库 > 2016蓝桥杯C++A组第八题 四平方和

2016蓝桥杯C++A组第八题 四平方和

直接暴力的话  四层循环 很可能超时  这里用到了小技巧

#include<stdio.h>
#include<iostream>
#include<cmath>
using namespace std;
int a[5000001];
int main(){
    int n;
    cin>>n;
    int flag=0;
    for(int i=0;i<=(int)sqrt(n);i++){
        for(int j=i;j<=(int)sqrt(n);j++){
            for(int k=j;k<=(int)sqrt(n);k++){
                int t=n-i*i-j*j-k*k;
                if(sqrt(t)==(int)sqrt(t)){
                    //cout<<t<<endl;
                    printf("%d %d %d %d\n",i,j,k,(int)sqrt(t));
                    flag=1;
                    break;
                }
            }
            if(flag==1) break;
        }
        if(flag==1) break;
    }
    return 0;
}

 

2016蓝桥杯C++A组第八题 四平方和