百位數有3種取值可能,互不重復,十位數就只有2種可能了,個位則只有壹種可能,所以總***有3x2x1***6種。根據上述思路,用C編程可用三重for嵌套循環完成。代碼如下:
#include?"stdio.h"int?main(int?argc,char?*argv[]){
int?i,j,k;
printf("Can?be?composed?of?%d?such?number,?they?are:\n",3*2);
for(i=1;i<=3;i++)//百位有1,2,3等3種選擇
for(j=1;j<=3;j++)
if(j!=i)//十位不等於百位數字時才考察個位,否則另選十位數
for(k=1;k<=3;k++)
if(k!=j?&&?k!=i)//個位必須與百位和十位都不同
printf("%4d",i*100+j*10+k);//輸出
printf("\n");
return?0;
}
運行結果如下: