@[kabout](/user/244597)
这句
```cpp
while((left-i*i*i*i)>=0)i++;
```
当这个循环执行完了之后,left-i\*i\*i\*i会<0,所以要把i多加个1……
by ywy_c_asm @ 2020-01-29 00:36:11
~~话说今天是我几个月来头一回碰代码……~~
by ywy_c_asm @ 2020-01-29 00:37:12
应该是减一吧
by kabout @ 2020-01-29 09:41:54
```cpp
#include<bits/stdc++.h>
using namespace std;
int n,mi=INT_MAX;
void dfs(int left,int step,int last)
{
if(left==0)
{
mi=min(step,mi);
return;
}
else if(step>=mi)return;
int i=last;
while((left-i*i*i*i)>=0)i++;
i-=1;
while(i>=last)
{
dfs(left-i*i*i*i,step+1,i);
i--;
}
}
int main()
{
cin>>n;
dfs(n,0,1);
cout<<mi;
return 0;
}
```
还是不对,咋整,我就是按题解上面的方法写的
by kabout @ 2020-01-29 09:47:37