测试发布
#include <cstdio>
#include <cstring>
long long f[520][520];
long long a[520];
int main()
{
int n;
memset(f,0,sizeof(f));
memset(a,0,sizeof(a));
f[0][0] = 1;
for (int i = 1; i <= 500; i++)
for (int j = 1; j <= i; j++)
for (int k = 0; k < j; k++)
{
f[i][j] += f[i-j][k];
}
for (int i = 1; i <= 500; i++)
{
for (int j = 1; j <= i; j++)
{
a[i] += f[i][j];
}
}
while (scanf("%d", &n) == 1)
{
if (n == 0) break;
printf("%lld\n", a[n] - 1);
}
return 0;
}

浙公网安备 33010602011771号