• 给定一个正整数,实现一个方法求出离该整数最近的大于自身的 换位数 <把一个整数各个数位进行全排列>


    """
    给定一个正整数,实现一个方法求出离该整数最近的大于自身的 换位数 -> 把一个整数各个数位进行全排列
    """

    # 使用 permutations() 方法实现
    import itertools


    def full_arrangement(num):
      my_str = ''
      my_list = []
      permutation = list(itertools.permutations(str(num), len(str(num))))
      for p in permutation:
        for i in range(len(p)):
          my_str += p[i]
          if len(my_str) == len(str(num)):
            my_num = int(my_str)
            if my_num > num:
              my_list.append(my_num)
            my_str = ''
      return my_list


    if __name__ == '__main__':
    num = int(input('输入一个正整数:'))
    my_list = full_arrangement(num)
    # 离该整数最近的大于自身的 换位数
    try:
      digits = min(my_list)
      print(digits)
    except ValueError as e:
      print('该正整数没有比自身大的换位数')

  • 相关阅读:
    lower_bound &&upper_bound
    二分/三分
    $qsort$
    define
    typedef
    string
    queue
    nyoj Arbitrage (Bellman-Ford)
    nyoj 谍战 (最小割最大流)
    nyoj 网络的可靠性(。。。)
  • 原文地址:https://www.cnblogs.com/changqing8023/p/9068404.html
Copyright © 2020-2023  润新知