CS153/hw6/hw4programs/leastsquare.oat

41 lines
649 B
Text
Raw Normal View History

int program(int argc, string[] argv) {
var n = 500;
return leastsquare(n);
}
/*finds the least number of squares to sum up to n*/
int leastsquare(int n) {
var cache = new int[]{n+1};
cache[0] = 0;
cache[1] = 1;
cache[2] = 2;
cache[3] = 3;
for (var i = 4; i < n + 1; i=i+1;) {
/*set to some arbitrary high number*/
cache[i] = i;
for (var k = 1; k < n; k = k + 1;) {
var temp = k*k;
if (temp > i) {
} else {
cache[i] = min(cache[i], 1 + cache[i - temp]);
}
}
}
return cache[n];
}
int min(int y, int x) {
if (x > y) {
return y;
} else {
return x;
}
}