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

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 目标计数模型训练过程中的问题
  • ¥100 Acess连接SQL 数据库后 不能用中文筛选
  • ¥15 用友U9Cloud的webapi
  • ¥20 电脑拓展屏桌面被莫名遮挡
  • ¥20 ensp,用局域网解决
  • ¥15 Python语言实验
  • ¥15 我每周要在投影仪优酷上自动连续播放112场电影,我每一周遥控操作一次投影仪,并使得电影永远不重复播放,请问怎样操作好呢?有那么多电影看吗?
  • ¥20 电脑重启停留在grub界面,引导出错需修复
  • ¥15 matlab透明图叠加
  • ¥50 基于stm32l4系列 使用blunrg-ms的ble gatt 创建 hid 服务失败