当前位置 博文首页 > boysoft2002的专栏:一起挑战pythontip的题目(24)

    boysoft2002的专栏:一起挑战pythontip的题目(24)

    作者:[db:作者] 时间:2021-07-27 17:47

    第 116 题:日期计算
    题目描述:给你一个日期的字符串 s,s 的格式为 ‘yyyy-mm-dd’(保证给定的日期合法),
    请你输出该日期是该年份的第几天,第几周,用一个空格隔开这两个数字。
    注意,天和周都从 1 开始计数。一周的开始是周日,结束是周六,例如 2014-01-04 是周六
    (这是 2014 年的第一周的最后一天),2014-01-05 是周日(这是第二周的开始)。
    例如:
    s = '2014-01-01', 则输出:1 1
    s = '2014-01-05', 则输出:5 2

    >>> def func(str):
    	t = [int(i) for i in str.split('-')]
    	from datetime import date
    	s = date(t[0],t[1],t[2])
    	return '%s %s'%((s-date(t[0],1,1)).days+1, s.isocalendar()[1])
    
    >>> func('2014-1-1')
    '1 1'
    >>> func('2014-1-5')
    '5 1'
    >>> func('2019-11-2')
    '306 44'
    >>> func('2002-7-8')
    '189 28'

    ============================================================
    第 117 题:因数(来自 2013 年 ACM-ICPC 世界总决赛)
    题目描述:数论的基本定理指出,对于任意大于 1 的整数,总有唯一的质因数分解。但是质
    因数的组合形式通常不止一种:
    如:
    10 = 2×5 = 5×2
    20 = 2×2×5 = 2×5×2 = 5×2×2
    设 f(k)为组合的个数,有 f(10) = 2, f(20) = 3 .
    给定正整数 n(0 < n < 1000) ,总存在至少一个 k,使得 f(k) = n .
    求满足条件的 k 的最小值。
    如:n=1,则输出 2。 因为 2=2 只有一种分解形式,故 f(2)=1,且 2 是满足条件的最小的整数,
    故输出 2。

    ============================================================
    第 118 题:约瑟夫问题
    题目描述:约瑟夫问题:有n只猴子,按顺时针方向围成一圈选大王(编号从1到n),从
    第1号开始报数,一直数到m,数到m的猴子退出圈外,剩下的猴子再接着从 1 开始报数。
    就这样,直到圈内只剩下一只猴子时,这个猴子就是猴王,现在给你 n 和 m,请你输出最
    后猴王的编号。示例:
    输入:n = 6
    m = 2
    输出:5
    ============================================================
    第 119 题:矩阵乘方和
    题目描述:给定一个 n*n 的矩阵 A,正整数 k 以及正整数 m(n<=30,k<=1000000000,m<=10000),
    请求出 S=A+A^2+A^3+A^4+...+A^k 的值.A^x 表示 x 个 A 相乘的结果. 输出矩阵 S 对 m 取模后
    的值,包括 n 行,每行 n 个数,每行数字之间以一个空格隔开。
    A 是一个二维列表,例如:
    n=2, k=2, m=4,A=[[0,1],[1,1]]
    则输出:
    1 2
    2 3

    ============================================================
    第 120 题:木棒问题
    题目描述:小 Py 有 n 根长度不同的木棒,有一天它把所有的木棒排成一行,用 S1,S2,S3,...,Sn
    表示.量出每个木棒的长度 Sk(1<=k<=n),它发现有两个木棒 Si 和 Sj(1< = i < j < = n),它们之间的
    所有木棒都比 Si 要长比 Sj 短.
    现在给出每个木棒的长度,你需要找到满足上述条件的两个木棒 Si 和 Sj,使得 j-i 最大. 木棒的
    长度存放在列表 L 中,请你输出满足条件的 j-i 的最大值,如果不存在,则输出-1。
    如:L = [5,4,3,6], 则输出:1。

    ============================================================

    来源:

    Python 爬取pythontip网站的挑战题目(附全部题目178题)

    cs