三种求子集的问题

来源:互联网 发布:决策树剪枝算法笔记 编辑:程序博客网 时间:2024/06/05 15:02
#include<stdio.h>int main(){int a[4] = {1,2,3,4};int b[4] = {0};int postion = 0;int i,j;while(1){for(i = 0;i<4&&b[i];b[i] = 0,i++);if(i >= 4)break;b[i] = 1;for(j = 0;j<4;j++){if(b[j]){printf("%3d",a[j]);}}printf("\n");}}

字典顺序求子集

#include<stdio.h>int main(){int a[4] ={1};int postion = 0;int i;while(1){if(a[postion]<=4){a[postion+1] = a[postion] + 1;postion++;}else if(a[0] == 4){break;}else{postion = 0;a[postion]++;}for(i = 0;i<postion;i++){printf("%3d",a[i]);}printf("\n");}}
指定数目的子集

#include<stdio.h>int main(){int a[4] = {0};int i,postion = 1;for(i = 0;i<2;i++){a[i] = i+1;}while(1){for(i = 0;i<=postion;i++){printf("%3d",a[i]);}printf("\n");if(a[postion] < 4){a[postion]++;}else if(a[postion] == 4){a[0]++;for(i = 1;i<=postion;i++){a[i] = a[i-1] + 1;}}elsebreak;}}