• 基础练习(VIP部分-持续更新)


    时间转换:

    题目:

    资源限制
    时间限制:1.0s   内存限制:512.0MB
    问题描述
      给定一个以秒为单位的时间t,要求用“<H>:<M>:<S>”的格式来表示这个时间。<H>表示时间,<M>表示分钟,而<S>表示秒,它们都是整数且没有前导的“0”。例如,若t=0,则应输出是“0:0:0”;若t=3661,则输出“1:1:1”。
    
    输入格式
      输入只有一行,是一个整数t(0<=t<=86399)。
    输出格式
      输出只有一行,是以“<H>:<M>:<S>”的格式所表示的时间,不包括引号。
    
    样例输入
    0
    样例输出
    0:0:0
    
    样例输入
    5436
    样例输出
    1:30:36

    代码:

    s = int(input())
    if s >= 0 and s <= 86399:
        H = s//3600
        s = s - H*3600
        M = s//60
        s = s - M*60
        print("{}:{}:{}".format(H, M, s))
    法一
    num = int(input())#输入及字符转为整型
    m,s=divmod(num,60)#整数赋值给m,余数赋值给s
    h,m=divmod(m,60)#同理
    print("{}:{}:{}".format(h,m,s))#格式化输出
    法二
    while True:
        try:
            t = int(input())
            h = t // 3600
            m = t%3600 // 60
            s = t % 3600 % 60
            print(str(h)+':'+str(m)+':'+str(s))
        except:
            break
    法三
    t = int(input())
    a = 0
    b = 0
    c = 0
    a = int(t/3600)
    b = int((t%3600)/60)
    c = int((t%3600)%60)
    print(str(a)+":"+str(b)+":"+str(c))
    法四

    注:

    法三和法四使用字符串转换

    字符串对比:

    题目:

    资源限制
    时间限制:1.0s   内存限制:512.0MB
    
    问题描述
      给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之一:
      1:两个字符串长度不等。比如 Beijing 和 Hebei
      2:两个字符串不仅长度相等,而且相应位置上的字符完全一致(区分大小写),比如 Beijing 和 Beijing
      3:两个字符串长度相等,相应位置上的字符仅在不区分大小写的前提下才能达到完全一致(也就是说,它并不满足情况2)。比如 beijing 和 BEIjing
      4:两个字符串长度相等,但是即使是不区分大小写也不能使这两个字符串一致。比如 Beijing 和 Nanjing
      编程判断输入的两个字符串之间的关系属于这四类中的哪一类,给出所属的类的编号。
    输入格式
      包括两行,每行都是一个字符串
    输出格式
      仅有一个数字,表明这两个字符串的关系编号
    
    样例输入
    BEIjing
    beiJing 
    样例输出
    3

    代码:

    s1 = str(input())
    s2 = str(input())
    len1 = len(s1)
    len2 = len(s2)
    if len1 != len2:
        print("1")
    else:
        if s1 == s2:
            print("2")
        elif s1.lower() == s2.lower():
            print("3")
        elif s1.lower() != s2.lower():
            print("4")
    法一
    import re
     
    def judge(s1, s2):
        if len(s1) != len(s2):
            return 1
        if s1 == s2:
            return 2
        if len(s1) == len(s2):
            if re.search(s1,s2,re.IGNORECASE):
                return 3
            else:
                return 4
     
    print(judge(input(),input()))
    法二

    注:

    关于法二中的re模块:

    re.IGNORECASE是compile函数中的一个匹配模式。
    re.IGNORECASE的意思就是忽略大小写。
    爬虫中运用比较多

    分解质因数:

    题目:

    资源限制
    时间限制:1.0s   内存限制:512.0MB
    
    问题描述
      求出区间[a,b]中所有整数的质因数分解。
    输入格式
      输入两个整数a,b。
    输出格式
      每行输出一个数的分解,形如k=a1*a2*a3...(a1<=a2<=a3...,k也是从小到大的)(具体可看样例)
    
    样例输入
    3 10
    样例输出
    3=3
    4=2*2
    5=5
    6=2*3
    7=7
    8=2*2*2
    9=3*3
    10=2*5
    
    提示
      先筛出所有素数,然后再分解。
    数据规模和约定
      2<=a<=b<=10000

    代码:

    # 判断素数
    def primeNumber(n):
        for i in range(2,int(n**0.5)+1):
            if n % i == 0:
                return  False
        else:
            return True
    
    #质因数分解
    def qualityDecomposition(tmp):
        for i in range(2, tmp + 1):
            if tmp % i == 0:
                tmp = tmp // i
                tmpL.append(i)
                qualityDecomposition(tmp)
                break
    
    # 输入
    num = input().split()
    a = int(num[0])
    b = int(num[1])
    
    while a != b+1:
        tmpL = [] # 存放质因数
    
        if primeNumber(a):
            print("{}={}".format(a, a))
        else:
            print("{}=".format(a, a),end="")
            qualityDecomposition(a)
    
        for i in range(len(tmpL)):
            print(tmpL[i],end='')
            if i == len(tmpL) - 1:
                print('')
            else:
                print("*",end='')
        a += 1
    View Code

    矩阵乘法:

    题目:

    资源限制
    时间限制:1.0s   内存限制:512.0MB
    
    问题描述
      给定一个N阶矩阵A,输出A的M次幂(M是非负整数)
      例如:
      A =
      1 2
      3 4
      A的2次幂
      7 10
      15 22
    
    输入格式
      第一行是一个正整数N、M(1<=N<=30, 0<=M<=5),表示矩阵A的阶数和要求的幂数
      接下来N行,每行N个绝对值不超过10的非负整数,描述矩阵A的值
    输出格式
      输出共N行,每行N个整数,表示A的M次幂所对应的矩阵。相邻的数之间用一个空格隔开
    
    样例输入
    2 2
    1 2
    3 4
    样例输出
    7 10
    15 22

    代码:

    while True:
        try:
            def matrix_mul(matrix1,matrix, n):
                c = [[0 for m1 in range(n)]for m in range(n)]
                for i in range(n):
                    for j in range(n):
                        for k in range(n):
                            c[i][j] += matrix1[i][k] * matrix[k][j]
                return c
    
            n = list(map(int, input().split()))
            s = []
            result = s
            for j in range(n[0]):
                s.append(list(map(int, input().split())))
            if n[1] == 0:
                for i in range(0, n[0]):
                    for j in range(0, n[0]):
                        if i == j:
                            result[i][j] = 1
                        else:
                            result[i][j] = 0
            else:
                for k in range(n[1]-1):
                    result = matrix_mul(result,s,n[0])
            for i in range(0, result.__len__()) :
                for j in range(0, result[i].__len__()) :
                    print(result[i][j],'', end='')
                print('')
        except:
            break
    View Code
  • 相关阅读:
    pip install selenium==版本号 报错
    解决phantomjs输出中文乱码
    phantomjs学习之网页访问测速
    phantomjs学习之截图
    bzoj1069-最大土地面积
    hdu4372-Count the Buildings
    bzoj3786-星系探索
    Codeforces633H-Fibonacci-ish II
    hdu3625-Rooms
    斯特林数
  • 原文地址:https://www.cnblogs.com/3cH0-Nu1L/p/14293092.html
Copyright © 2020-2023  润新知