重複排列
作法: 遞迴
僅供參考 不自己試試看 我出這題目就沒有意義了 ... 而我也會很*
(雖然我也是錯了 看別人寫的)
/***********************************************************/
#include<stdio.h>
#include<stdlib.h>
int num[100],line[100]={0};
int n,sum;
void make (int k)
{
int a;
if(k>sum)
{
for(a=1;a<=sum;a++)
printf("%d",line[a]);
printf("\n");
return;
}
else
{
for(a=1;a<=n;a++)
if(num[a]>0)
{
num[a]--;
line[k]=a;
make(k+1);
num[a]++;
}
}
}
main()
{
while(scanf("%d",&n)==1)
{
sum=0;
int a;
for(a=1;a<=n;a++)
{scanf("%d",&num[a]);sum=sum+num[a];}
make (1);
}
return 0;
}