#include<stdio.h>
int a[11] = { 0 };//全局数组
bool isok(int x, int y)
{
int i = 0;
while (x)//分离x中的数字,存入a数组中
{
a[i++] = x % 10;
x /= 10;
}
while (y)//分离y中的数字,存入a数组中
{
a[i++] = y % 10;
y /= 10;
}
for (int i = 0; i < 9; i++)//比较数组中是否有重复的数字
{
for (int j = i + 1; j <= 9; j++)
{
if (a[i] == a[j])
{
return false;
}
}
}
return true;
}
int main()
{
int n = 0;
scanf("%d", &n);
for (int i = 1234; i < 49383; i++)//i的最大值为98765(i*n最大值) / 2 约为49383,已知n的最小值为2
{
if (i * n > 98765)//如果i*n超过了其最大值,则跳出循环
{
break;
}
if (isok(i,i*n))
{
printf("%d", i*n);
printf("/");
printf("%d\n", i);
}
}
return 0;
}
7-1(除法)输入正整数n,按从小到大的顺序输出所有形如abcde/fghij = n的表达式,其中a~j恰好为数字0~9的一个排列(可以有前导0),2≤n≤79。 (紫书习题)
于 2024-03-10 17:21:06 首次发布
本文介绍了一个C语言程序,用于检查两个输入整数i和i*n(其中n是用户输入的整数)的乘积是否所有数字互不相同。通过isok函数实现数字分离和重复检测。
685





