• 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)

    运行结果:

  • 相关阅读:
    蓝桥杯java 基础练习 完美的代价
    C# 获得手机归属地功能
    c# HttpWebRequest与HttpWebResponse(转)
    C# Winfrom小黄鸡功能调用
    Winfrom 抓取web页面内容代码
    Winform将网页生成图片
    Winform上传下载文件代码
    Jquery LigerUI框架学习(二)之Tree于Tab标签实现iframe功能
    Jquery LigerUI框架学习(一)
    C# 生成简单验证码
  • 原文地址:https://www.cnblogs.com/BIXIABUMO/p/12664280.html
Copyright © 2020-2023  润新知