被一道小学生的题目打败了,求大佬
本帖最后由 冥月影 于 2019-8-14 17:18 编辑今天无聊看小学的暑假园地,发现了这样一道题,以为能简单做出来的,就试了一下,结果。。。
// 附上我极其丑陋的代码。。。求大佬给个解题思路。。。能给个完成代码看一下更好,毕竟我很菜。。。
根据大佬给的思路终于做出来了,贴上我乱的一匹代码给各位大佬吐槽。。。
public class Main{
public static void main(String[] args) {
// TODO 自动生成的方法存根
/**
* 年年X岁岁=花相似
* 岁岁÷年年=人÷不同
* 上面两道算式中,有八个不同的汉字,它们分别代表0、1、2、4、5、6、8、9八个数字。你能求出上面两道算式来吗?
*
* n * 11 * s * 11 == hxs
* s * 11 / n * 11 == r / bt
*
* s * bt = r * n
* bt = r * n / s
*/
for (int n = 1; n <= 9; n++) {
for (int s = 1; s <= 9; s++) {
for (int r = 0; r <= 9; r++) {
int hxs = n * s * 121;
int bt = r * n / s;
if (flag(n, s, hxs, r, bt)) {
System.out.printf("%d * %d = %d\n%d / %d = %d / %d", n * 11, s * 11, hxs, s * 11, n * 11, r, bt);
}
}
}
}
}
/**
* 判断数字是否有重复
* @param num
* @return
*/
public static boolean flag (int...num) {
int index = 0;
int[] list = new int;
// 把多位数化成个位数
for (int n : num) {
// 花相似大于1000直接退出
if (n > 999) {
return false;
}
while (n > 9) {
if (n % 10 != 7 && n % 10 != 3) {
list = n % 10;
}
n /= 10;
}
if (n != 7 && n != 3) {
list = n;
}
}
// 判断数组内容是否重复
for (int i : list) {
int count = 0;
for (int j : list) {
if (i == j) {
count++;
if (count > 1) {
return false;
}
}
}
}
return true;
}
}
本帖最后由 18368727273 于 2019-7-30 10:41 编辑
对不起 打扰了 回错了 有意思,我也试试!{:1_918:}
等会上代码
44*22=968
22/44=5/10 22*44=968
22/44=10/5 对不起,打扰了,告辞 打扰了 点错了 回错了 前几天看我妹妹作业上也有这个题,我当时也不会做,是一个一个算出来的,现在这小学生的题都这么难了吗? 打扰了 点错了 回错了 好奇的点进来,完全看不懂:wwqwq