只有192这一组数啊

授人以渔,不授人以鱼。

程序代码:/*
求所有这样的三位数,它的2倍,3倍还是三位数,且这三个三位数使用1到9之间不同数字。如n=192,2n=384,3n=576.
*/
#include <stdio.h>
#include <conio.h>
#define FALSE 0
#define TRUE !FALSE
void Reset_Array(int* Array, int Number);
int Check(int Var, int* Array);
void main(void)
{
int i = 1; // 百位数
int j = 1; // 十位数
int k = 1; // 个位数
int Var; // 所求整数
int Array[9]; // 数字使用标志数组, 用过的数字在对应位置为真
for (i = 1; i <= 9; i++)
{
for (j = 1; j <= 9; j++)
{
for (k = 1; k <= 9; k++)
{
Var = i * 100 + j * 10 + k;
if ((2 * Var < 1000) && (3 * Var < 1000))
{
if ((i != j) && (i != k) && (j != k))
{
Reset_Array(Array, 9);
Array[i-1] = TRUE;
Array[j-1] = TRUE;
Array[k-1] = TRUE;
if (Check(2 * Var, Array))
{
if (Check(3 * Var, Array))
{
printf_s("n = %3d, 2n = %3d, 3n = %3d\n", Var, 2 * Var, 3 * Var);
}
}
}
}
}
}
}
printf_s("\n按任意键结束程序");
_getwch();
}
// 重置数组
void Reset_Array(int* Array, int Number)
{
register int i;
for (i = 0; i < Number; i++)
{
Array[i] = FALSE;
}
}
// 检测数字是否使用过,未用返回真,否则返回假
int Check(int Var, int* Array)
{
int Success = TRUE;
int i;
while (Var > 0)
{
i = Var % 10;
if (Array[i-1] == FALSE)
{
Array[i-1] = TRUE;
}
else
{
Success = FALSE;
break;
}
Var /= 10;
}
return Success;
}
