partition.cc
来自「the FXT library: fast transforms and low」· CC 代码 · 共 62 行
CC
62 行
#include "partition.h"partition::partition(int nn){ n = ( nn<1 ? 1 : nn ); x = new int[n+1]; init();}//---------------------partition::~partition(){ delete [] x;}//---------------------voidpartition::init(){ x[0] = n; k = 0; i = 0; idx = 0;}//---------------------voidpartition::make_next()// based on code by Helmut Herold{ ++idx; n1 = k-i; k = i; x[i]--; while ( x[k]<=n1 ) { n1 -= x[k]; k++; x[k] = x[k-1]; } k++; x[k] = n1 + 1; if ( x[i]!=1 ) i = k; if ( x[i]==1 ) i--;// if ( i<0 ) return 0;// return 1; // here: n1 == number of ones in partition}//---------------------
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?