解题思路:
代码如下:
#include <stdio.h>
#include <string.h>
int main()
{
int i, count = 0, j, k, a[10], c;//用i表示abc,j表示def,k表示ghi
memset(a, 0, sizeof(a));//初始化数组,全部为零
for ( i=123; i<=329; i++ )
{
j = i*2;
k = i*3;
a[i/100] = a[i/10%10] = a[i%10] = 1;//分别标记出现过的数字
a[j/100] = a[j/10%10] = a[j%10] = 1;
a[k/100] = a[k/10%10] = a[k%10] = 1;
for ( c=0; c<10; c++ )
count += a[c];
if ( count == 9 ) //只有1到9每个数字被标记结果才为9
printf("%d %d %d\n", i, j, k);
count = 0;
memset(a, 0, sizeof(a));
}
return 0;
}版权声明:本文为博主原创文章,未经博主允许不得转载。
算法竞赛入门经典 习题2-10 排列(permutation)
原文地址:http://blog.csdn.net/fjinhao/article/details/48102177