[关闭]
@fyywy520 2015-08-27T12:11:37.000000Z 字数 807 阅读 2049

嫂嫂的数学题

数学


嫂嫂的数学题

Java 代码

  1. public class MathTest {
  2. public static void main(String[] args) throws Exception {
  3. int ynterofxis[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
  4. cal(ynterofxis, 0, ynterofxis.length - 1);
  5. }
  6. public static void cal(int[] buf, int start, int end) {
  7. if (start == end) {// 递归至最后一位时开始计算
  8. int y, n, t, e, r, o, f, x, i, s;
  9. y = buf[0];
  10. n = buf[1];
  11. t = buf[2];
  12. e = buf[3];
  13. r = buf[4];
  14. o = buf[5];
  15. f = buf[6];
  16. x = buf[7];
  17. i = buf[8];
  18. s = buf[9];
  19. // 计算题设表达式是否成立
  20. boolean equal = (n + 10 * e + 100 * t) * 2 + (y + 10 * t + 100 * r + 1000 * o + 10000 * f) == (y + 10 * t + 100 * x + 1000 * i + 10000 * s);
  21. if (equal) { // 输出结果
  22. System.out.print("ynterofxis = ");
  23. for (int j = 0; j <= buf.length - 1; j++) {
  24. System.out.print(buf[j]);
  25. }
  26. System.out.println();
  27. }
  28. } else {// 多个数字全排列
  29. for (int i = start; i <= end; i++) {
  30. int temp = buf[start];// 交换数组第一个元素与后续的元素
  31. buf[start] = buf[i];
  32. buf[i] = temp;
  33. cal(buf, start + 1, end);// 后续元素递归全排列
  34. temp = buf[start];// 将交换后的数组还原
  35. buf[start] = buf[i];
  36. buf[i] = temp;
  37. }
  38. }
  39. }
  40. }

输出结果

  1. ynterofxis = 6085792413
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注