lalalala


私信TA

用户名:zhangshuo

访问量:151562

签 名:

像狗一样的学习,像绅士一样地玩耍。

等  级
排  名 5
经  验 30087
参赛次数 10
文章发表 201
年  龄 12
在职情况 学生
学  校 芜湖市第十一中学
专  业

  自我简介:

今日懒惰流下的口水,将会成为明日里伤心的泪水。

解题思路:

格式有点问题,但照样过了!嘻嘻嘻!




注意事项:





参考代码:

#include<stdio.h>  
#include<string.h>  
#include<stdlib.h>  
  
long long n,t;  
long long num[30];  
long long a[30];  
int count;  
  
void print(int cnt)  // 从后往前打印   
{  
    for(int i=cnt;i>=0;i--)  
    printf("%d%c",num[i],i==0 ? '\n' : ' ');  
      
}  
void dfs(int cnt1, int cnt2 ,int sum)  
{  
    if(cnt1 < 0)  
        return ;  
      
    dfs( cnt1 - 1, cnt2, sum);  // 先不要第 n 个   
      
    num[cnt2] = a[cnt1];    //  要第 n 个   
    sum += num[cnt2];       //    
      
    //printf(" %d   %d \n",sum,t);  
    if( sum == t)  
        {  
      
            count++;  
            print(cnt2);  
  
        }  
    dfs(cnt1 -1,cnt2+1,sum);  
      
          
}  
int main()  
{  
    count = 0;  
    scanf("%lld",&n);  
    for(int i=0;i<n;i++)  
        scanf("%lld",&a[i]);  
    scanf("%lld",&t);  
      
//  for(int i=0;i<n;i++)  
//      printf("   %lld   ",a[i]);  
//      puts("\n");  
      
    dfs( n-1, 0, 0);  
      
    printf("%d\n",count);  
    return 0;  
}


 

0.0分

3 人评分

  评论区