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

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日

悬赏问题

  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥15 键盘指令混乱情况下的启动盘系统重装
  • ¥40 复杂的限制性的商函数处理