首页 > 其他 > 详细

求和为某数的全部组合

时间:2014-02-26 01:12:36      阅读:316      评论:0      收藏:0      [点我收藏+]

在给定数字范围内,求和为某数的全部组合

bubuko.com,布布扣
#include <stdio.h>

struct Zhan{
    int n;
    int content[100];
};

ruZhan(struct Zhan* zhan, int x){
    (*zhan).content[(*zhan).n] = x;
    (*zhan).n++;
}

czZhan(struct Zhan* zhan, int n){
    (*zhan).n = n;
}

printfZhan(struct Zhan* zhan){
    int i;
    for(i = 0; i < (*zhan).n; i++){
        printf("%d ", (*zhan).content[i]);
    }
    printf("\n");
}

int find(int e, int x, struct Zhan* zhan){
    int n;
    n = (*zhan).n;

    if(e <= 0) return 0;
    if(x - e > 0){
        ruZhan(zhan, e);
        find(e - 1, x - e, zhan);
    }
    else if(x - e < 0) ;
    else if(x - e == 0){
        ruZhan(zhan, e);
        printfZhan(zhan);
    }
    czZhan(zhan, n);

    find(e - 1, x, zhan);

}

main(){
    struct Zhan zhan;
    zhan.n = 0;
    find(100, 41, &zhan);
    printfZhan(&zhan);
}
bubuko.com,布布扣

求和为某数的全部组合

原文:http://www.cnblogs.com/yutoulck/p/3566848.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!