zoukankan      html  css  js  c++  java
  • python验证卡普耶卡(D.R.Kaprekar)6174猜想

    1955年,卡普耶卡(D.R.Kaprekar)4位数字进行了研究,发现一个规律:

    对任意各位数字不相同的4位数,使用各位数字能组成的最大数减去能组成的最小数,对得到的差重复这个操作,最终会得到6174这个数字,并且这个操作最多不会超过7

    以下为python代码验证

    a = input()
    a = int(a)
    i = 0
    l = []
    cha = 0

    b = a%1000                                 #求出百十个位
    max4 = (a - b)/1000                    #求出千位
    d = b%100                                  #求出十个位
    max3 = (b - d)/100                     #求出百位
    max1 = d%10                            #求出个位
    max2 = (d - max1)/10                #求出十位
    l.append(max4)
    l.append(max3)
    l.append(max2)
    l.append(max1)
    l.sort()
    max1 = int(l[0])                          #最小值
    max2 = int(l[1])
    max3 = int(l[2])
    max4 = int(l[3])                          #最大值

    while cha != 6174 :
        i = i + 1
        summax = max4 * 1000 + max3 * 100 + max2 * 10 + max1
        summin = max1 * 1000 + max2 * 100 + max3 * 10 + max4
        cha = summax - summin
        baishige = cha%1000                                                             #求出百十个位
        max4 = (cha - baishige)/1000                                                 #求出千位
        shige = baishige%100                                                            #求出十个位
        max3 = (baishige - shige)/100                                                #求出百位
        max1 = shige%10                                                                   #求出个位
        max2 = (shige - max1)/10                                                      #求出十位

        l = []                                                                                        #这个地方要把列表清零,当时没注意,在这调试了很长时间                                  
        l.append(max4)
        l.append(max3)
        l.append(max2)
        l.append(max1)
        l.sort()
        max1 = int(l[0])            #最小值
        max2 = int(l[1])
        max3 = int(l[2])
        max4 = int(l[3])            #最大值
        print(cha)    
        print(i)

    截图

  • 相关阅读:
    241. Different Ways to Add Parentheses java solutions
    89. Gray Code java solutions
    367. Valid Perfect Square java solutions
    46. Permutations java solutions
    116. Populating Next Right Pointers in Each Node java solutions
    153. Find Minimum in Rotated Sorted Array java solutions
    判断两颗树是否相同
    求二叉树叶子节点的个数
    求二叉树第k层的结点个数
    将二叉排序树转换成排序的双向链表
  • 原文地址:https://www.cnblogs.com/liuzhaowei/p/10762418.html
Copyright © 2011-2022 走看看