Infinity的棋盘密码:Infinity 解决 HG 大学的难题后,又来到了附近的 ZF 大学,这次他得到了三页纸的题目。 Infinity 迅速注意到了一个简短的密码...

题面描述

Infinity 解决 HG 大学的难题后,又来到了附近的 ZF 大学,这次他得到了三页纸的题目。 Infinity
迅速注意到了一个简短的密码。 13 34 21 21 15 15 “每个数字都是 1 到 5 之间,两位一组,这很有可能是棋盘密码!”
Infinity 迅速画出了一张表格:次出添加描述
“对于每组的两个数字,第一个数字表示行数,第二个数字表示列数,可以对应出一个字母,比如 13 就是第一行第三列的 C 。”
“为什么 I 和 J 放在一格?”在一旁的小明问道。
“ 5*5 的格子放 26 个字母,肯定有一个字母放不下。棋盘密码设计之初,就把 I 和 J 放在了一格。要是碰到 24 ,我们只能通过上下文判断是 I 还是 J 了。 C…O…F…F…E…E, COFFEE !快去问问 ZF 大学的咖啡厅在哪!”
现在给你一些数字,请你用 Infinity 说的棋盘密码解开谜题。
由于 I 比 J 常见,所以遇到 24 请一律按 I 处理。

输入数据

输入第一行是一个整数 n (1 <= n <= 100) ,表示数据的组数。接下来 n 行,每行第一个数表示密码的长度 mi (1 <=
mi <= 100) ,接下来是 mi 个两位整数,表示一段棋盘密码,保证密码中只出现数字 1~5 。

输出数据

对每组测试数据输出单独的一行结果,形如 ” Case #x: ans ” ,表示第 x 组的结果为 ans , ans 为一行大写字母,表示密码的答案,详见样例。

样例输入

3
6 13 34 21 21 15 15
8 24 33 21 24 33 24 44 54
5 23 15 31 31 34

样例输出

Case #1: COFFEE
Case #2: INFINITY
Case #3: HELLO

心得:将数组个位和十位拆开判断即可

T = int(input())    
for t1 in range(T) :      
    ns = [int(item) for item in input().split()]      
    n = ns[0]      
    s = ''      
    for i in range(1, n+1):            
        if int(ns[i]/10) == 1:              
            if ns[i] % 10 == 1:                  
                s+='A'              
            elif  ns[i]%10 == 2:                  
                s+='B'              
            elif  ns[i]%10 == 3:                  
                s+='C'              
            elif  ns[i]%10 == 4:                  
                s+='D'              
            elif  ns[i]%10 == 5:                  
                s+='E'          
        elif  int(ns[i]/10) == 2:              
            if ns[i] % 10 == 1:                  
                s+='F'              
            elif  ns[i]%10 == 2:                  
                s+='G'              
            elif  ns[i]%10 == 3:                  
                s+='H'              
            elif  ns[i]%10 == 4:                  
                s+='I'              
            elif  ns[i]%10 == 5:                  
                s+='K'          
        elif  int(ns[i]/10) == 3:              
            if ns[i] % 10 == 1:                  
                s+='L'              
            elif  ns[i]%10 == 2:                  
                s+='M'             
            elif  ns[i]%10 == 3:                  
                s+='N'              
            elif  ns[i]%10 == 4:                  
                s+='O'              
            elif  ns[i]%10 == 5:                  
                s+='P'          
        elif  int(ns[i]/10) == 4:              
            if ns[i] % 10 == 1:                  
                s+='Q'              
            elif  ns[i]%10 == 2:                  
                s+='R'              
            elif  ns[i]%10 == 3:                  
                s+='S'              
            elif  ns[i]%10 == 4:                  
                s+='T'              
            elif  ns[i]%10 == 5:                  
                s+='U'          
        elif  int(ns[i]/10) == 5:              
            if ns[i] % 10 == 1:                  
                s+='V'              
            elif  ns[i]%10 == 2:                  
                s+='W'              
            elif  ns[i]%10 == 3:                  
                s+='X'              
            elif  ns[i]%10 == 4:                  
                s+='Y'              
            elif  ns[i]%10 == 5:                  
                s+='Z'      
    print("Case #%d: %s" % (t1 + 1, s))  

猜你喜欢

转载自blog.csdn.net/tianxiefenxiang/article/details/107457303