整数拆分问题(用堆栈的方法)

#include
#include
#include

#define MAX_INTEGER 20

/*
整数拆分:输入一个1--20之间的整数,将其拆分成多个整数的和
例如:
5 = 1 + 1 + 1 + 1 + 1
5 = 2 + 1 + 1 + 1
5 = 2 + 2 + 1
5 = 3 + 1 + 1
5 = 3 + 2
5 = 4 + 1
5 = 5
*/
int main()
{
//整数拆分时需要用到的堆栈
int sumStack[MAX_INTEGER]; //各个加数的和的堆栈
int numStack[MAX_INTEGER]; //各个加数的堆栈
int top; //栈顶
int nn;
int ii;

while ( 1==1 )
{
    for ( ii=0;   ii<MAX_INTEGER;    ii++ )
    {
        sumStack[ii]=0;
        numStack[ii]=0;
    }
    top=0;
    nn=0;
    printf("nn = ");
    scanf("%d", &nn);
    if ( (nn<1) || (nn>MAX_INTEGER) )
        return 1;

    //缺失的代码





    printf("end\n");
}
return 0;

}

/////////////////////////////

https://blog.csdn.net/u011889952/article/details/44813593