一起挑战pythontip的题目(9)

简介: 一起挑战pythontip的题目(9)

第41题:Py数


题目描述:Py从小喜欢奇特的东西,而且天生对数字特别敏感,一次偶然的机会,他发现了一个有趣的四位数2992,

这个数,它的十进制数表示,其四位数字之和为2+9+9+2=22,它的十六进制数BB0,其四位数字之和也为22,

同时它的十二进制数表示1894,其四位数字之和也为22,啊哈,真是巧啊。


Py非常喜欢这种四位数,由于他的发现,所以这里我们命名其为Py数。


现在给你一个十进制4位数n,你来判断n是不是Py数,若是,则输出Yes,否则输出No。


如n=2992,则输出Yes; n = 9999,则输出No。


示例:输入:n = 1234

输出:No

>>> def baseN(num, b):
    '''10制数num转任意b进制数,其中b<=36'''
  return num==0 and "0" or (baseN(num//b,b).lstrip("0") + ''.join([chr(i) for i in range(48,123) if not 57<i<97])[num%b])
>>> func10 = lambda n:sum([int(i) for i in list(str(n))])
>>> func16 = lambda n:sum([('abcdef'.index(i)+10) if i in 'abcdef' else int(i) for i in list(hex(n))[2:]])
>>> func12 = lambda n:sum([('ab'.index(i)+10) if i in 'ab' else int(i) for i in list(baseN(n,12))])
>>> n = 2992
>>> func10(n)
22
>>> func12(n)
22
>>> func16(n)
22
>>> # 输出略



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

第42题:分拆素数和


题目描述:把一个偶数拆成两个不同素数的和,有几种拆法呢?

现在来考虑考虑这个问题,给你一个不超过10000的正的偶数n,

计算将该数拆成两个不同的素数之和的方法数,并输出。

如n=10,可以拆成3+7,只有这一种方法,因此输出1.

示例:输入:n = 4

输出:0

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

第43题:斐波那契数列


题目描述:斐波那契数列为1,1,2,3,5,8...。数列从第三项起满足,该项的数是其前面两个数之和。现在给你一个正整数n(n < 10000), 请你求出第n个斐波那契数取模20132013的值(斐波那契数列的编号从1开始)。

例如:

n=1, 则输出:1

n=4, 则输出:3

示例:输入:n = 2

输出:1


>>> def f(n):
  return n<3 and 1 or f(n-1)+f(n-2)
>>> f(1)
1
>>> f(2)
1
>>> f(3)
2
>>> f(8)
21
>>> f(35)
9227465
>>> 



注:递归法有点慢,f(35)已不能秒算了;函数体内式子等价于: return 1 if n<3 else f(n-1)+f(n-2)

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

第44题:超级楼梯


题目描述:有一楼梯共n级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第n级,共有多少种走法?  

现在给你一个正整数n(0<n<40),请你输出不同的走法数。

如n=2,则输出1(你只有一种走法,走一步,从第一级到第二级)

示例:输入:n = 2

输出:1

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

第45题:砝码问题


题目描述:有一组砝码,重量互不相等,分别为m1、m2、m3……mn;它们可取的最大数量分别为x1、x2、x3……xn。  

现要用这些砝码去称物体的重量,问能称出多少种不同的重量。  

现在给你两个正整数列表w和n, 列表w中的第i个元素w[i]表示第i个砝码的重量,列表n的第

i个元素n[i]表示砝码i的最大数量。i从0开始,请你输出不同重量的种数。

如:w=[1,2], n=[2,1], 则输出5(分析:共有五种重量:0,1,2,3,4)

示例:输入:w = [1, 2]

n = [2, 1]

输出:5

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



目录
相关文章
|
算法
一起挑战pythontip的题目(2)
一起挑战pythontip的题目(2)
60 0
|
Python
一起挑战pythontip的题目(10)
一起挑战pythontip的题目(10)
126 0
|
机器学习/深度学习
一起挑战pythontip的题目(14)
一起挑战pythontip的题目(14)
68 0
|
Python
一起挑战pythontip的题目(34)
一起挑战pythontip的题目(34)
86 0
|
调度 Python
一起挑战pythontip的题目(23)
一起挑战pythontip的题目(23)
82 0
|
算法 测试技术 定位技术
一起挑战pythontip的题目(20)
一起挑战pythontip的题目(20)
89 0
|
Python
一起挑战pythontip的题目(1)
一起挑战pythontip的题目(1)
102 0
|
数据安全/隐私保护
一起挑战pythontip的题目(4)
一起挑战pythontip的题目(4)
65 0
|
存储
一起挑战pythontip的题目(18)
一起挑战pythontip的题目(18)
60 0
|
定位技术
一起挑战pythontip的题目(22)
一起挑战pythontip的题目(22)
70 0