51,412
社区成员
发帖
与我相关
我的任务
分享
class Equation {
public static void main(String[] args){
int[] a = new int[6];
for (int i = 100; i < 1000; i++) {
for (int j = 100; j < 1000; j++) {
if(i*j<100000&&i*(j%10)<1000&&i*(j/10%10)<1000&&i*(j/100)<1000){
a[0] = i;
a[1] = j;
a[2] = i*(j%10);
a[3] = i*(j/10%10);
a[4] = i*(j/100);
a[5] = i*j;
if(f(a))System.out.println(i*j);
}
}
}
}
public static boolean f(int[] a){
int[] p = new int[20];
for(int i = 0; i < 6; i++){
int k = 0;
while(a[i] != 0){
p[a[i]%10] ++;
if(p[a[i]%10] > 2)return false;
a[i] /= 10;
k ++;
}
if(k<3) return false;
}
return true;
}
}
竟然真的是40096
class Equation {
/**
* 计数器
*/
static int[] c = new int[10];
public static void main(String[] args) {
// 上 / 逐行结果
int[] ax = new int[3];
// 下
int[] aj = new int[3];
int[] ar = new int[5];
// 上
for (int i = 100; i < 1000; i++) {
// 下
for (int j = 100; j < 1000; j++) {
clear(c);
if (!fillArrayThree(ax, i)) {
continue;
}
if (!fillArrayThree(aj, j)) {
continue;
}
int r = i * j;
if (r >= 100000) {
// 结果是五位数
break;
}
if (!fillArrayFive(ar, r)) {
continue;
}
String strA = "";
boolean pass = true;
for (int a : aj) {
int l = a * i;
// 每行结果都不会大于1000
if (l >= 1000) {
pass = false;
break;
}
if (!fillArrayThree(ax, l)) {
pass = false;
break;
}
strA += l + ",";
}
if (pass) {
System.out.println(i + "," + j + "," + strA + "," + i * j);
}
}
}
}
private static boolean fillArrayFive(int[] a, int i) {
a[0] = i / 10000;
a[1] = (i / 1000) % 10;
a[2] = (i / 100) % 10;
a[3] = (i / 10) % 10;
a[4] = i % 10;
return count(a[0]) && count(a[1]) && count(a[2]) && count(a[3]) && count(a[4]);
}
/**
* 转换数字为数组
*
* @param a
* @param i
* @return false 已经超过2个
*/
private static boolean fillArrayThree(int[] a, int i) {
a[0] = i / 100;
a[1] = (i / 10) % 10;
a[2] = i % 10;
return count(a[0]) && count(a[1]) && count(a[2]);
}
/**
* @param i
* @return false 已经超过2个
*/
private static boolean count(int i) {
c[i]++;
return c[i] <= 2;
}
private static void clear(int[] c) {
for (int i = 0; i < c.length; i++) {
c[i] = 0;
}
}
}
我的代码.. 没想到这玩意 写了半个小时.. 有些地方没有太深究,应该可以写的更好看一点
不过看起来你的代码比较帅 .. 所以你是来炫耀的么
哈哈.. 有点枯燥的题目.. 我就路过看看