除法
输入正整数n,按从小到大的顺序输出所有形如abcde/fghij = n的表达式,a~j恰好为数字0-9的一个排列(可以有先导0),2<=n<=79
package test;
import java.util.Scanner;
public class Main {
private static void fun(int x,int[]arr) {
int k = 0;
while(k<5) {
arr[k++]=x%10;
x/=10;
}
return;
}
public static void main(String[] args) {
/*
* 输入整数n,从小到大输出类似abcde/fghij= n的表达式,a-j为0-9(前导可为0),2<=N<=79;
* 先用n乘与除数得到被除数,减少代码量
* sum1 = sum2*n;
* 暴力枚举没毛病
*/
int temp=0;
//设置变量sum1;
int sum1 = 0;
//存储1-10,初值为零,用来判断数值使用是否重复;
int[] pos = new int[10];
//储存sum1
int[] n1 = new int[5];
//sum2
int[] n2 = new int[5];
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
for(int i = 1234;i<50000;i++) {
sum1 = n*i;
if(sum1>99999)
continue;
//将数值逆序存储在数组中;
Main.fun(sum1,n1);
// for(int k =0;k<5;k++) {
// System.out.println(n1[k]);
// }
Main.fun(i,n2);
//查看i首(如01234,即n[4]是否为0;是0则pas[0]要加1;;
// if(n1[4]==0);
// else
// pos[n1[4]]++;
// //ni[4]==0;相当于pos[0]++;
// if(n2[4]==0);
// else
// pos[n2[4]]++;
//
for(int j =0;j<5;j++) {
pos[n1[j]]++;
pos[n2[j]]++;
}
//判断是否重复使用数字;
for(int j = 0;j<10;j++)
if(pos[j]>1)
temp=1;
if(temp==0)
System.out.println(sum1+"/"+i+"="+n);
//重置pos进行下一次循环;
for(int j1 = 0;j1<10;j1++)
pos[j1]=0;
temp=0;
}
scan.close();
}
}