<<算法竞赛入门经典>> 习题2-10
//刘汝佳<<算法竞赛入门经典>> 习题2-10
#include <iostream>
using namespace std;
bool flag[10] = {false};
void reFlag()
{
for(int j=1;j<10;++j)
flag[j] = false;
}
bool setFlag(int p)
{
if(flag[p/100])
return false;
else
flag[p/100]= true;
if(flag[p/10%10])
return false;
else
flag[p/10%10] = true;
if(flag[p%10])
return false;
else
flag[p%10] = true;
}
bool containZero(int q)
{
if(q%10==0 || q/10%10==0)
return true;
else
return false;
}
int main()
{
int a,b,i;
for(i=123;i<=321;++i)
{
a = i*2;
b = i*3;
reFlag();
if(containZero(i) || containZero(a) || containZero(b) || !setFlag(i) ||!setFlag(a) ||!setFlag(b)) continue;
printf("%d %d %d\n",i,a,b);
}
return 0;
}