你可以用数组存位数,然后写个返回bool的检查函数。
by Loner_Knowledge @ 2017-12-17 22:49:00
@[沙与沫](/space/show?uid=77421)
自己都感觉没说明白,重新说一遍。
可以用数组存位数,然后用循环判断用没有相同的数字。
我的方法是定义一个Check函数返回一个bool值,用来检测在第n位数之前有没有与第n位数相同的数字,如果有则返回0。
然后用循环调用Check(2)一直到Check(9)即可。
by Loner_Knowledge @ 2017-12-18 10:44:29
0. 楼主真心有毅力
by autoint @ 2017-12-18 13:18:15
明白了 谢谢你
by 沙与沫 @ 2017-12-21 19:57:43
```cpp
#include<iostream>
using namespace std;
int main()
{
int x2,x3,tmp,mod,out;
for (int x = 1; x <= 3; x++)
{
for (int y = 1; y <= 9; y++)
{
if (y == x )
continue;
for (int z = 1; z <= 9; z++)
{
if (z==y)
continue;
if (z == x)
continue;
int sum[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
sum[x] = 0;
sum[y] = 0;
sum[z] = 0;
x2 = (x * 100 + y * 10 + z) * 2;
out = 1;
mod = x2;
while (mod && out)
{
tmp = mod % 10;
if (sum[tmp] == 0)
out = 0;
else
{
mod = mod / 10;
sum[tmp] = 0;
}
}
if (!out)
continue;;
x3 = (x * 100 + y * 10 + z) * 3;
mod = x3;
while (mod && out)
{
tmp = mod % 10;
if (sum[tmp] == 0)
out = 0;
else
{
mod = mod / 10;
sum[tmp] = 0;
}
}
if (out)
cout << x * 100 + y * 10 + z << " " << x2 <<" "<< x3 << endl;
}
}
}
//system("pause");
return 0;
}
```
by 网上虫子 @ 2018-01-02 21:59:15