• Python真题练习:1004-成绩排名、1009-说反话、1017-A除以B、1018-锤子剪刀布


    1004——成绩排名

    读入n (>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。

    输入格式:

    每个测试输入包含 1 个测试用例,格式为

    1 行:正整数 n

    2 行:第 1 个学生的姓名 学号 成绩

    3 行:第 2 个学生的姓名 学号 成绩

    …………

    第 n+1 行:第 n 个学生的姓名 学号 成绩

    其中姓名学号均为不超过 10 个字符的字符串,成绩为 0 到 100 之间的一个整数,这里保证在一组测试用例中没有两个学生的成绩是相同的。

    输出格式:

    对每个测试用例输出 2 行,第 1 行是成绩最高学生的姓名和学号,第 2 行是成绩最低学生的姓名和学号,字符串间有 1 空格。

    输入样例:

    3
    Joe Math990112 89
    Mike CS991301 100
    Mary EE990830 95

    输出样例:

    Mike CS991301
    Joe Math990112

    代码实现:

    def GradeRanking(n):
        name=[]
        num=[]
        grade=[]
        for i in range(int(n)):
            a=input().split()
            name.append(a[0])
            num.append(a[1])
            grade.append(int(a[2]))
        gmax=grade[0]
        gmin=grade[0]
        g1,g2=0,0
        for i in range(len(grade)):
            if grade[i]>gmax:
                gmax=grade[i]
                g1=i
            if grade[i]<gmin:
                gmin=grade[i]
                g2=i
        print(name[g1],num[g1])
        print(name[g2],num[g2])
    
    n=input()
    GradeRanking(n)

    运行结果:

    1009——说反话

    给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。

    输入格式:

    测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。

    输出格式:

    每个测试用例的输出占一行,输出倒序后的句子。

    输入样例:

    Hello World Here I Come

    输出样例:

    Come I Here World Hello

    代码实现:

    #第一种方法    
    s=input().split()
    s1=s[::-1]
    s2=' '.join(s1)
    print(s2)    
    #第二种方法
    s=input().split()
    s.reverse()
    s1=' '.join(s)
    print(s1)

    运行结果:

    1017——A除以B

    本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得 A=BxQ+R 成立。

    输入格式:

    输入在一行中依次给出A和B,中间以1空格分隔。

    输出格式:

    在一行中依次输出Q和R,中间以1空格分隔。

    输入样例:

    123456789050987654321 7

    输出样例:

    17636684150141093474 3

    代码实现:

    def AdiviB(s):
        R=int(s[0])%int(s[1])
        Q=(int(s[0])-R)//int(s[1])
        print(Q,R)
    
    s=input().split()
    if len(s)==2:
        AdiviB(s)

    运行结果:

    1018——锤子剪刀布

    大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:

    FigCJB.jpg

    现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。

    输入格式:

    输入第1行给出正整数N (<=10^5),即双方交锋的次数。随后N行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C代表“锤子”、J代表“剪刀”、B代表“布”,第1个字母代表甲方,第2个代表乙方,中间有1个空格。

    输出格式:

    输出第 1、2 行分别给出甲、乙的胜、平、负次数,数字间以 1 个空格分隔。第 3 行给出两个字母,分别代表甲、乙获胜次数最多的手势,中间有 1 个空格。如果解不唯一,则输出按字母序最小的解。

    输入样例:

    10
    C J
    J B
    C B
    B B
    B C
    C C
    C B
    J B
    B C
    J J

    输出样例:

    5 3 2
    2 3 5
    B B

    代码实现:

    def CJB(n):
        J1=0#甲赢的第一种情况,即甲C乙J
        J2=0#甲赢的第二种情况,即甲J乙B
        J3=0#甲赢的第三种情况,即甲B乙C
        Ping=0#平局计数
        Y1=0#乙赢的第二种情况,即甲J乙C
        Y2=0#乙赢的第三种情况,即甲B乙J
        Y3=0#乙赢的第一种情况,即甲C乙B
        for k in range(int(n)):#输赢判断、计数
            i=input().split()
            if i[0]=='C' and i[1]=='J':
                J1+=1
            elif i[0]=='J' and i[1]=='B':
                J2+=1
            elif i[0]=='B' and i[1]=='C':
                J3+=1
            elif i[0]=='J' and i[1]=='C':
                Y1+=1
            elif i[0]=='B' and i[1]=='J':
                Y2+=1
            elif i[0]=='C' and i[1]=='B':
                Y3+=1
            else:
                Ping+=1
        #甲、乙赢、平、输次数
        print(J1+J2+J3,Ping,int(n)-(J1+J2+J3+Ping))
        print(Y1+Y2+Y3,Ping,int(n)-(Y1+Y2+Y3+Ping))
        #甲、乙获胜次数最多的手势
        if J1>=J2 and J1>J3:
            a='C'
        elif J2>J1 and J2>J3:
            a='J'
        elif J3>=J1 and J3>=J2:
            a='B'
        if Y1>=Y2 and Y1>Y3:
            b='C'
        elif Y2>Y1 and Y2>Y3:
            b='J'
        elif Y3>=Y1 and Y3>=Y2:
            b='B'
        print(a,b)
    
    n=input()
    CJB(n)

    运行结果:

  • 相关阅读:
    ASP.NET 4.0 与 Entity Framework 4第三篇使用Entity Framework调用存储过程
    雕虫无小技 JavaScript初学者的10个迷你技巧
    IE6下button随着文字的增多两边的内容边框也会增加的bug
    bigint ,int ,smallint ,tinyint 数据类型
    分享7个不错的jQuery游戏( 转)
    IE CSS Bug及解决方案参考手册
    利用CSS样式打印
    SQL 2005 弹出不允许对系统目录进行即席更新解决方法
    VS2010快捷键
    SQL2K,DTC错误:"该伙伴事务管理器已经禁止了它对远程/网络事务的支持"的解决办法
  • 原文地址:https://www.cnblogs.com/BIXIABUMO/p/12664280.html
Copyright © 2020-2023  润新知