没人发题解吗?
2024-08-21 19:25:21
发布于:上海
25阅读
0回复
0点赞
看了下前面的提交记录都差不多
#include<iostream>
#include<vector>
#include<cmath>
using namespace std;
bool is_sq(int x){
int s=static_cast<int>(sqrt(x));
return s*s==x;
}
bool Find(int n,vector<int>& sq){
for(int i=0;i*i<=n;i++){
int re=n-i*i;
for(int j=0;j*j<=re;j++){
int ne=re-j*j;
for(int k=0;k*k<=ne;k++){
int la=ne-k*k;
if(is_sq(la)){
sq[0]=i,sq[1]=j,sq[2]=k,sq[3]=static_cast<int>(sqrt(la));
return true;
}
}
}
}
return false;
}
int main(){
int n;
cin>>n;
vector<int> sq(4,0);
if(Find(n,sq)){
cout<<sq[0]<<" "<<sq[1]<<" "<<sq[2]<<" "<<sq[3];
}
else{
cout<<"-1";
}
}
这里空空如也
有帮助,赞一个