AcWing 1221. 四平方和
原题链接
简单
作者:
ofs
,
2024-04-11 23:44:58
,
所有人可见
,
阅读 2
#include<bits/stdc++.h>
#define longlong int
#define endle '\n'
#define INF 0x3f3f3f3f3f3f
const int N=1e6*5+10;
int n;
int a[N];
using namespace std;//别忘了!!!!!!!!!!!!
signed main() //别把signed写成singed
{
ios::sync_with_stdio(0);
cout.tie(0);
cin.tie(0);
cin>>n;
int s=(int)sqrt(n);
int amount=0; //记录有几个正整数
//判断是不是平方数
if (sqrt(n)-(int)sqrt(n)==0) cout<<0<<" "<<0<<" "<<0<<" "<<(int)sqrt(n);
//此时不是正好的平方数
else
{
while(1)
{
a
while(n!=0) //直接求最小的一组数 注意条件不能写成
{
a[amount]=(int)sqrt(n);
n-=a[amount]*a[amount]; //注意n减去平方值
//cout<<"amount:"<<amount<<endl;测试
//cout<<"a[amount]:"<<a[amount]<<endl;
//cout<<n<<endl;
amount++;
}
if(amount>4)
{
continue;
}
else
//cout<<"res:"<<endl; 测试
//下面这一段输出要写在else里!!!!
int i;
for(i=0;i<4-amount;i++)
{
cout<<0<<" ";
}
while(amount--)
{
cout<<a[amount]<<" ";
}
break;
}
}
return 0;
}