summer_529 2022-02-08 16:48 采纳率: 84.6%
浏览 185
已结题

Python幸运数字问题 算法求解

45、我们经常喜欢说自己的幸运数是多少,但是你认为的幸运数和你的契合度真的那么高吗?其实我们可以通过一段程序来对这点进行一个验证,我们现在有一种很神奇的计算方法:
第一步: 取出你姓名的缩写,例如,我们上课的珊珊的名字缩写就可以写为SHANSHAN。
第二步: 将每个字母用数字字符串取代。首先找到一个正整数N表示你的幸运数,之后用N来取代A,N+1来取代 B,N+2 来取代 C,……, N+25来取代Z。例如,如果珊珊觉得他的幸运数字是6,那么N就是6,A就被 6 取代,B 就被7取代,……,Z 则被32取代。上面的例子SHANSHAN则被 24136192413619取代。
第三步:重复以下操作:将相邻的两位数相加,并写下和的个位数。不难发现这个操作每进行一次,这个数字字符串就会少一位数。当这个数字变成 100 或不超过两位数(第一位是 0 也算两位数)时,这个程序便停止。所得的数字就是你跟你幸运数的契合度。用上面的例子来说,处理的过程如下:
24136192413619
6549701654970
193671719367
——
096
95
所以如果N为6的话,SHANSHAN跟数字6的契合度高达95!
相信同学们一定很想知道自己名字和幸运数的契合度吧,你可以尝试着写一个程序,只要输入一个姓名和一个N值,就输出他们的契合度。
输入格式:
第一行包括一个仅包含大写字母的姓名字符串
第二行是一个正整数N
输出格式:
一行,输出一个整数,表示契合度。
输入输出样例:
输入1:
DLLSS
478
输出1:
100

  • 写回答

1条回答 默认 最新

  • chuifengde 2022-02-08 18:36
    关注
    name = input(">>>")
    N = int(input(">>>"))
    
    s = ''
    for i in name:
        s += str((ord(i) - 65) + N)
        
    while s != '100' and len(s) >2:
        r = [str((int(s[i]) + int(s[i+1])) % 10) for i in range(len(s) - 1)]
        s = ''.join(r)
       
    print(int(s))
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 2月16日
  • 已采纳回答 2月8日
  • 创建了问题 2月8日

悬赏问题

  • ¥15 C++ /QT 内存权限的判断函数列举
  • ¥15 深度学习GFnet理解问题
  • ¥15 单细胞小提琴堆叠图代码
  • ¥80 LS dyna mpp并行报错
  • ¥50 升级strust2版本到2.3.15.1后使用ognl3.0.6.jar windows环境中没有问题,但部署到linux环境报错
  • ¥15 vue页面,node封装接口
  • ¥15 求TMS320F280039C工程模板!
  • ¥15 delphi+fastreport实现分组补空打印问题
  • ¥15 使用python把两台mysql数据库服务器数据导出和导入
  • ¥15 NodeBB论坛配置Apache Solr中文搜索引擎的详细教程