�#include "stdlib.h"
��
��static int n;
��int *a;
��static int total =0 ;
��void output(int s){
�� int i=1;
�� printf("%d = %d",n,a[i]);
�� for(i=2; i<=s; i++){
�� printf("+%d",a[i]);
�� }
�� printf("");
��}
��
��int filter(int s){
�� int i,j;
�� if(s==1)return -1;
�� for(i=s;i>0;i--)
�� for(j=1;j�� if(a[i]==a[j])
�� return -1;
�� }
�� return 0;
��}
��void dfs(int d,int low,int rest){
�� //printf("d = %d ,low = %d ; rest =%d",d,low,rest);
�� int i;
�� if(rest == 0){
�� if(filter(d-1)==0){
�� total ++;
�� output(d-1);
�� }
�� }
�� if(low>rest) {
�� //printf("1111111111111");
�� return ;
�� }
�� for(i=low;i<=rest;i++){
�� a[d]=i;
�� dfs(d+1,i,rest-i);
�� }
��}
��
��int main(int argc, char* argv[])
��{
评论0