#include<iostream>
#include<cmath>
using namespace std;
int com(int m);
int i=1;
int main()
{
int m,j=0,n[100];//m用来保存输入的数,n[100]用来保存最少需要的平方个数,j用来计数
while(m!=-1)
{
i=1;
cin>>m;
com(m-pow(floor(sqrt(m)),2));
n[j]=i;
j++;
}
cout<<endl;
for(int i=0;i<j-1;i++)
cout<<n[i]<<endl;
return 0;
}
int com(int m)
{
if(m==1)
return i+=1;
else if(m==0)
return 0;
else
{
com(m-pow(floor(sqrt(m)),2));
i++;
}
}
注:本题来自 点击打开链接