枚举法输入正整数n,按照从小到大的顺序输出所有形如abcde/fghij=n的表达式,其中a~j恰好是数字0~9的一个排列(可以有前导0),2
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/08 15:06:48
枚举法输入正整数n,按照从小到大的顺序输出所有形如abcde/fghij=n的表达式,其中a~j恰好是数字0~9的一个排列(可以有前导0),2
枚举法
输入正整数n,按照从小到大的顺序输出所有形如abcde/fghij=n的表达式,其中a~j恰好是数字0~9的一个排列(可以有前导0),2
枚举法输入正整数n,按照从小到大的顺序输出所有形如abcde/fghij=n的表达式,其中a~j恰好是数字0~9的一个排列(可以有前导0),2
#include<stdio.h>
int main()
{
//freopen("in.txt","r",stdin);
//freopen("out.txt","w",stdout);
int i,j,m,n,a[10],t,s,k;
scanf("%d",&n);
for(i=1234;i<=98765;i++)
{
if(i%n!=0)
continue;
t=0;
m=i;
for(j=4;j>=0;j--)
{
a[j]=m%10;
m=m/10;
}
s=i/n;
for(k=9;k>=5;k--)
{
a[k]=s%10;
//printf("%d",a[k]);
s=s/10;
}
for(j=0;j<=9;j++)//here can't use i!
{
for(k=j+1;k<=9;k++)
{
if(a[j]==a[k])
{
t=1;
break;
}
}
if(t==1)
{
break;
}
}
if(t==0)
//{
// for(i=0;i<=4;i++) //use i again!
// printf("%d",a[i]);
// printf("/");
// for(j=5;j<=9;j++)
// printf("%d",a[j]);
// printf("=%d\n",n);
printf("%d / %d = %d\n",i,i/n,n);
//}
}
return 0;
}