为了账号安全,请及时绑定邮箱和手机立即绑定

使用递归函数对整数进行随机排序

使用递归函数对整数进行随机排序

繁星淼淼 2021-04-06 17:22:09
一个采用整数并对其进行随机排序的递归函数。依次从前一个数字和后面的一个数字,然后从前面的第二个和从后面的第二个数字,依次类推,直到被重新排列的数字与原始数字相同。例如,123456将打印为162534或130将打印为103。任何帮助将不胜感激。在字符串上,这很容易,需要整数的建议。A = '130'def shuffle(A):    if len(A) <= 2:        return A    return (A[0] + A[-1]) + shuffle(A[1:-1])输出:103
查看完整描述

3 回答

?
慕姐8265434

TA贡献1813条经验 获得超2个赞

转换成字符串?


A = 130


def shuffle(A):

    A = str(A)

    if len(A) <= 2:

        return int(A)

    return int((A[0] + A[-1]) + str(shuffle(A[1:-1])))


查看完整回答
反对 回复 2021-04-27
?
PIPIONE

TA贡献1829条经验 获得超9个赞

不转换为字符串:


def shuffle(x):

    if x < 100:

        return x

    t = x

    l = 0

    while t > 0:

        t //= 10

        l += 1

    a = x // 10 ** (l-1) * 10 ** (l-1)

    b = (x % 10) * 10 ** (l-2)

    return a + b + shuffle((x - a) // 10)

测试工作:


>>> shuffle(123456)

162534

>>> shuffle(310)

301


查看完整回答
反对 回复 2021-04-27
?
慕的地8271018

TA贡献1796条经验 获得超4个赞

string使用slices正负索引进行迭代和使用


def shuffle(phrase):

  even = 0

  odd = -1

  result = ''

  phrase = str(phrase)


  for n in range(len(phrase)):

    if int(n/2) == n/2:

      result = result + phrase[even]

      even += 1

    else:

      result = result + phrase[odd]

      odd += -1


  return result


查看完整回答
反对 回复 2021-04-27
  • 3 回答
  • 0 关注
  • 178 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信