讨论 / 回溯法勉强AC(>_<)
沧海一声喵 2018-02-27 20:00:27
点我顶贴 收藏 删除
#include <cstdio>

using namespace std;

int n,sum=0,d,a[130];

void f(int k){

int i,p=a[k-1],m=d,h=n-d;

if(!h){

sum++;return;}

if(h<=p) return;

for(i=p+1;i<=h;i++){

if(d+i<=n){

a[k]=i;d+=i;

f(k+1);}

d=m;}}

int main(){

int i,p;

scanf("%d",&n);

p=n/2;

for(i=1;i<=p;i++){

a[1]=i;

d=i;f(2);}

printf("%d",sum);

return 0;}

查看更多回复
提交回复