题目描述如下
:
代码如下:
#include <stdio.h>
unsigned long long int dp[10001] ;
int main (){
int i,j ,k ;
int v[22];
int n ;
for (i = 1 ; i < 22 ; i ++)
v[i] = i*i*i ;
dp [0] = 0 ;
for ( i = 1 ; i <=21 ; i ++ ){
for ( j = 0 ; j<10001 ; j ++ ){
if ( j>=v[i] && i>1 )
dp[j] = dp[j] + dp[ j -v[i] ];
if ( i == 1){
dp[j] = 1;
}
}
}
while (scanf ("%d",&n)!=EOF){
printf ("%llu\n" , dp[n]);
}
return 0;
}