输入一个正整数n,按从小到大输出所有形如abcde/fghij=n的表达式,其中a~j恰好为数字0~9的一个排列,2≤n≤79。
样例输入:
62
样例输出:
79546/01283=62
94726/01528=62
算法:
根据输入枚举出符合格式的数据。
代码如下
#include<cstdio>
#include<cstring>
bool check(int a, int b)
{
if(!(a >= 1234 && a <= 98765 && b >= 1234 && b <= 98765)) return false;
bool temp[10];
memset(temp, 0, sizeof(temp));
for(int i = 0; i < 5; i++)
{
if(temp[a%10]) return false;
temp[a%10] = true;
a /= 10;
if(temp[b%10]) return false;
temp[b%10] = true;
b /= 10;
}
return true;
}
void myprint(int a, int b, int c)
{
if(b < 10000)
printf("%d/0%d=%d\n", a, b, c);
else
printf("%d/%d=%d\n", a, b, c);
}
int main()
{
int n, a;
while(scanf("%d", &n) != EOF)
{
for(int i = 1234; i <= 98765; i++)
{
a = i * n;
if(check(a, i))
myprint(a, i, n);
}
}
return 0;
}