首页 > 编程语言 >python习题-验证6174猜想

python习题-验证6174猜想

时间:2023-04-12 20:34:46浏览次数:39  
标签:count 数字 num2 python num str 习题 6174

题目描述

1955年,卡普耶卡(D.R.Kaprekar)对4位数字进行了研究,发现一个规律:对任意各位数字不相同的4位数,使用各位数字能组成的最大数减去能组成的最小数,对得到的差重复这个操作,最终会得到6174这个数字,并且这个操作最多不会超过7次。请编写程序验证这个猜想。

【源代码程序】

def kaprekar(num):
    # 将数字转换为4位字符串
    num_str = str(num)
    # 判断4位数字是否有重复
    if len(num_str) != len(set(num_str)):
        print("输入有误,请输入4位各不相同数字")
        return 0
    count = 0
    # 循环
    while num != 6174:
        # 分别将数字从大到小和从小到大排序
        num1 = int(''.join(sorted(num_str, reverse=True)))
        num2 = int(''.join(sorted(num_str)))
        # 两数相减
        num = num1 - num2
        # 操作次数加一
        count += 1
        # 输出每次操作的过程
        print("第%s次 max=%s min=%s max-min=%s" % (count, num1, num2, num))
        # 将得到的数字再转换为4位字符串
        num_str = str(num)
    return count


# 输入
num = input("请输入4位各不相同的数字:")
# 输出结果
print("总次数:%s" % kaprekar(num))

运行测试

 

标签:count,数字,num2,python,num,str,习题,6174
From: https://www.cnblogs.com/mendianyu/p/17311131.html

相关文章

  • python习题-杨辉三角
    【题目描述】输出n(0<n)行杨辉三角形,n由用户输入。【源代码程序】n=int(input("请输入要打印的杨辉三角的行数:"))#初始化杨辉三角的第一行triangle=[[1]]#循环生成杨辉三角foriinrange(1,n):#初始化当前行的第一个元素为1row=[1]#循环生成当......
  • 20230412-Python-pycharm使用技巧
     1.新建文件,自动生成代码       2.自动补齐自定义段落        3.修改注释颜色        ......
  • Python的函数的缺省值参数(空列表)之坑
    Fromhttps://www.jianshu.com/p/9f899d829562 defadd(x,lst=[]):ifnot(xinlst):lst.append(x)returnlstlist1=add(1)print(list1)list2=add(2)print(list2)list3=add(3,[11,12,13,14])print(list3)list4=add(4)print(list4......
  • Python程序笔记20230304
    抛硬币实验random模块importrandomrandom.randint(a,b)返回一个随机整数N,范围是:a<=N<=brandom.choice("ilovefishc")从"ilovefishc"这个字符串中随机选出一个字符。编写一个双色球的开奖模拟程序importrandomred=random.sample(range(1,34),6)blue=r......
  • C++第二章课后习题2-29,2-30
    2-29在程序中定义一个整型变量,倔以1~100的值。要求用户猜这个数,比较两个数的大小,把结果提示给用户,直到猜对为止。分别使用while、do…while语句实现循环。#include<iostream>usingnamespacestd;intmain(){inta=56;cout<<"请输入您要猜的数(0......
  • Python+selenium点击网页上指定坐标
     fromseleniumimportwebdriverfromselenium.webdriver.common.action_chainsimportActionChainsdefclick_locxy(dr,x,y,left_click=True):'''dr:浏览器x:页面x坐标y:页面y坐标left_click:True为鼠标左键点击,否则为右键点击''&#......
  • (三)python多进程multiprocessing模块的变量传递问题:父进程中的numpy.array对象隐式序列
    参考:https://docs.python.org/zh-cn/3/library/multiprocessing.htmlcloudpickle——Python分布式序列化的专用模块python多进程multiprocessing模块的变量传递问题:父进程中的numpy.array对象隐式序列化到子进程后的inplace操作的问题-Death_Knight-博客园(cnblogs.com)......
  • python之封装mysql
     数据查询类封装1.功能分析可以连接不同sql数据库查一条数据,多条数据可以获取不同格式的数据2.封装成数据库查询类封装思路:数据库查询模块有多个功能,且需要复用,所以封装成类在构造方法中创建连接创建对象方法实现各种查询#-*-coding:utf-8-*-#@Time......
  • 更新 Python 的 setuptools 包
    [......
  • python自动化之unittest
    一、官方文档:https://docs.python.org/zh-cn/3/library/unittest.html二、unittest使用unittest使用规范需要导入unittest包测试类必须继承unittest.TestCase类测试方法必须要以test开头测试用例名称不能相同,相同的情况可能出现用例遗漏执行的情况ddt使用事项见下方......