回 帖 发 新 帖 刷新版面

主题:数学黑洞6174化简版

数学黑洞6174:
一个四位数组成的最大四位数减最小四位数,会得到一个新四位数,把这个四位数重复刚刚的动作,最后一定会变成7641-1467=6174,将永远出不来。
证明这个观点。(不能是四位数全部相同的,如1111,3333)
化简版:
CLS
DIM a(4)
DO: INPUT n$: LOOP UNTIL LEN(n$) = 4
n = VAL(n$)
DO
  p = 0
  FOR i = 1 TO 4: a(i) = VAL(MID$(n$, i, 1)):  NEXT i
  FOR i = 1 TO 3: FOR j = i + 1 TO 4
    IF a(i) < a(j) THEN SWAP a(i), a(j)
    IF a(i) = a(j) THEN p = p + 1
  NEXT j, i
  IF p = 6 THEN PRINT "Error!": END
  max = a(1) * 1000 + a(2) * 100 + a(3) * 10 + a(4): x = 4
  WHILE a(x) = 0: x = x - 1: WEND: SWAP a(4), a(x)
  min = a(4) * 1000 + a(3) * 100 + a(2) * 10 + a(1)
  PRINT max; "-"; min; "="; max - min
  n = max - min: n$ = LTRIM$(STR$(n))
  s = s + 1
LOOP UNTIL n = 6174
PRINT s
END

回复列表 (共3个回复)

沙发

把题目讲清楚点儿

板凳

汗。。。。
半天没看懂
寒(⊙﹏⊙b汗)

3 楼

比如,输入3322,
先拿3,3,2,2组成最大的四位数和最小的四位数3322和2233
相减得3322-2233=1089
再拿1,0,8,9组成最大的四位数和最小的四位数相减得9810-1089=8721
再拿8,7,2,1组成最大的四位数和最小的四位数相减得8721-1278=7443
再拿7,4,4,3组成最大的四位数和最小的四位数相减得7443-3447=3996
再拿3,9,9,6组成最大的四位数和最小的四位数相减得9963-3699=6264
再拿6,2,6,4组成最大的四位数和最小的四位数相减得6642-2466=4176
再拿4,1,7,6组成最大的四位数和最小的四位数相减得7641-1467=6174
这时,已经得到6174,不管怎么组成都是7641-1467=6174,所以这时就退出,并输出掉进“黑洞”(6174)的步数。
? 3322
 3322 - 2233 = 1089
 9810 - 1089 = 8721
 8721 - 1278 = 7443
 7443 - 3477 = 3996
 9963 - 3699 = 6264
 6642 - 2466 = 4176
 7641 - 1467 = 6174
 7

我来回复

您尚未登录,请登录后再回复。点此登录或注册