思路:利用排列思想,进行递归;#include "iostream" using namespace std; char b[10]; void pick_one(char a[],int num[],int n){ if(n==6){ b[n]=‘\0‘; cout<<b<<endl; return; } for(int i=0;i<5;i++){ if(n==2&&a[i]==‘E‘)continue; else{ if(num[i]!=0){ b[n]=a[i]; num[i]--; pick_one(a,num,n+1); num[i]++; } } } } void main(){ char a[]={‘A‘,‘B‘,‘C‘,‘D‘,‘E‘}; int num[]={1,2,1,1,1}; pick_one(a,num,0); }
时间: 2024-11-06 21:07:23