zp1353_pl.cpp

来自「浙江大学acm在线判题器代码集。 本人在浙大acm判题器上的所有代码(心血) 」· C++ 代码 · 共 39 行

CPP
39
字号
#include <iostream.h>
const MAX=500;
unsigned int table[MAX][MAX];

unsigned int makeit( int sum,int lim )
{
	if( sum==0 )
		return 1;
	if( sum == lim )
		return 1;
	if( sum<lim )
		return 0;
	if( (int) table[sum][lim]!=0 )
		return table[sum][lim];
	unsigned int total = 0;
	for( int i=lim;i<=sum-lim;i++ )
		total += makeit( sum-2*lim,i );
	table[sum][lim] = total;
	return total;
}

int main()
{
  for (int i=0;i<=MAX;i++)
    for (int j=0;j<=MAX;j++)
      table[i][j]=0;
  int n,i;
  unsigned int total=1;
	cin>>n;
  while(n)
  {
		for(i=1;i*2<=n;i++ )
			total += makeit( n,i );
		cout<<n<<' '<<total<<endl;
    cin>>n;
	}
	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?