# Tabulation, need help!

• 08-30-2005
henz321
Tabulation, need help!
Here's what i've done, the output of this program is suppose to have

"w(1234) = 6 Sample set: 1 1 2 2 6 10" this works! however for larger numbers it wont have the correct sample set.

The sample set are the cubes that make up that w(n) number, i can't seem to get the correct answer for larger numbers for e.g.
"W(10000) = 3 Sample set: 10 10 20",

i think its something to do with the int w(int n)
its choosing the wrong m.

```int w(int n, int cubes[], int S[], int T[]); void printSample(int n,int cubes[],int S[],int T[]); const int maxCubes = 10; //never more than 9 cubes so 10 is safe const int maxInput = 16000; int main() { int n;  // delclaring variables int cubes[24]; // holds cubes of numbers. max is 24^3 saves recalculation int S[maxInput]; int T[maxInput]; int i, cube; // initialize cube table for(i=1;(cube=(i*i*i)) <= maxInput; i++){ // saves all m^3 from 1-11 data         cubes[i-1] = cube; }     cout << "Enter a non negative integer: " ;     cin >> n;     while (n > 0)    // tests for non-negative numbers     {     for(i=0; i<=n; i++){ // initialize T and S         w(i,cubes,S,T);     }            cout << "W(" << n << ") = " << T[n] << " " << "Sample Set:  "; //      printS(n,S,T);       printSample(n,cubes,S,T);       cout << endl;       cout << "Enter a non negative integer: " << endl;       cin >> n;     }     return 0;  // terminates when integer is negative } void printSample(int n,int cubes[],int S[],int T[]){     if(n == 0)           return;     else{     printSample(n-cubes[(S[n])],cubes,S,T);     cout << " ";     cout << S[n] + 1;            } } // Waring algorithm int w(int n, int cubes[], int S[],int T[]) {   int minValue = maxCubes;   int m;     if (n == 0)        return 0;     else {         for(m = 0; cubes[(m + 1)] <= n; m++){               }           T[n] = 1 + T[n - cubes[m]];           S[n] = m;         }             return T[n]; }```