|
|
发表于 2017-11-23 02:55:00
|
显示全部楼层
本帖最后由 yjsx86 于 2017-11-23 03:15 编辑
闲来无事,本就是抱着学习的态度来的 所以这单我接了
- #/usr/bin/env pathon3
- #-*- coding: utf-8 -*-
- import random
- from functools import reduce
- def random_numbers(numbers_limit):
- '获取numbers_limit个随机数'
- L = []
- while True:
- #简单暴力范围直接定在8位 9位 数
- L.append(random.randint(100000000, 9999999999))
- if len(set(L)) == numbers_limit:
- break
- return L
- # sum(map(int, str(number)))
- # 下面的函数可以用上面的替代,更简洁,可以不定义直接使用
- # 用timeit测试上下代码 下面的效率高出一倍————这只是个人习惯
- def digits_sum(number):
- '各个位数之和'
- result = 0
- while number != 0:
- result += number % 10
- number //= 10
- return result
- def select_number(x, y):
- '相当于自定义的cmp'
- x_digits_sum = digits_sum(x)
- y_digits_sum = digits_sum(y)
- if x_digits_sum == y_digits_sum:
- return x if x > y else y
- else:
- return x if x_digits_sum > y_digits_sum else y
- if __name__ == '__main__':
- # n = 10
- # L = random_numbers(n)
- # 下面是对条件2的模拟 各位和最大有3个 999 7776 55557 输出应该是55557
- L = [999, 111111111, 7776, 555111, 55557, 888]
- print(reduce(select_number, L))
复制代码 |
|