// *Partition Of Number* idea by K. M¹czyńska, // polished & cached by K. Bosak 1998-03-11 // use of big numbers by Krzysztof Bosak 1999-01-15 // kbosak@box43.pl // http://panoramix.ift.uni.wroc.pl/~bosy #include #include "number.h" static const short int max=401; Number dynarray[max*max]; int mularray[max+1]; Number partition(short int x, short int y) { Number *target=dynarray+x+mularray[y]; x-=y; if(x<0) { y+=x; x=0; } Number result=One; while(y>1) { Number *test=dynarray+x+mularray[y]; if(!test->IsZero()) result+=*test; else result+=partition(x, y); x++; y--; } return *target=result; } int main() { for(short int i=0; i