#include<stdio.h>
#include<math.h>
int ju(int a){
for(int i=1;i<3000;i++){
if(pow(i,2)>a)
return i-1;
}
return 0;
}
int main(){
int a;
scanf("%d",&a);
int res[4];
for(int i=3;i>=0;i--){
res[i]=ju(a);
a-=ju(a)*ju(a);
}
for(int i=0;i<4;i++){
printf("%d ",res[i]);
}
return 0;
}
调试测试数据的时候看到12>>1 1 1 3的时候就感觉寄了,本萌新只会贪心(最后一个数尽量大),后来试了先/4化简再最后乘回去,但也只是改对了12,773535的调试结果还是2 7 29 879,如果我要把前面的数改得尽量小应该怎么操作啊,感谢