美文网首页
网易编程题 幸运的袋子

网易编程题 幸运的袋子

作者: 水木年华_d444 | 来源:发表于2018-04-26 15:54 被阅读0次

题目描述

一个袋子里面有n个球,每个球上面都有一个号码(拥有相同号码的球是无区别的)。如果一个袋子是幸运的当且仅当所有球的号码的和大于所有球的号码的积。

例如:如果袋子里面的球的号码是{1, 1, 2, 3},这个袋子就是幸运的,因为1 + 1 + 2 + 3 > 1 * 1 * 2 * 3

你可以适当从袋子里移除一些球(可以移除0个,但是别移除完),要使移除后的袋子是幸运的。现在让你编程计算一下你可以获得的多少种不同的幸运的袋子。

输入描述:

第一行输入一个正整数n(n ≤ 1000)第二行为n个数正整数xi(xi≤ 1000)

输出描述:

输出可以产生的幸运的袋子数

示例1

输入

3

1 1 1

输出

2

def total_number(pos, sum_value, product_value):

    count = 0

    while pos < n:

        next_sum, next_product = sum_value + nums[pos], product_value * nums[pos]

        if  next_sum > next_product:

            count += 1 + total_number(pos+1, next_sum, next_product)

        elif nums[pos] == 1:

            count += total_number(pos+1, next_sum, next_product)

        else:

            break

        sum_value, product_value = next_sum - nums[pos], next_product // nums[pos]

        while pos+1 < n and nums[pos+1] == nums[pos]:

            pos += 1

        pos += 1

    return count

n = int(input())

nums = sorted(list(map(int, input().split())))

print(total_number(0, 0, 1))

相关文章

  • 网易编程题 幸运的袋子

    题目描述 一个袋子里面有n个球,每个球上面都有一个号码(拥有相同号码的球是无区别的)。如果一个袋子是幸运的当且仅当...

  • 8.12网易前端笔试感想(编程部分)

    今天下午参加了网易前端笔试,选择题考了算法,数据结构还有JS有关知识,题目难度相对基础,算是很幸运的,编程题三道,...

  • 精研3道简单的网易2018校招编程题

    下面三道编程题来自网易2018校招编程题,这三道应该来说是非常简单的编程题了,这些题目大家稍微有点编程和数学基础的...

  • 网易编程题总结

    链接:https://www.nowcoder.com/questionTerminal/d996665fbd5e...

  • 网易游戏编程题

    标签(空格分隔): 算法 C++ 笔试 第三题:描述小王最近在开发一种新的游戏引擎,但是最近遇到了性能瓶颈。于是他...

  • 幸运的袋子

    题目描述 一个袋子里面有n个球,每个球上面都有一个号码(拥有相同号码的球是无区别的)。如果一个袋子是幸运的当且仅当...

  • 2018 网易 iOS [编程题] 牛牛选工作(80%通过率 -

    2018 网易 iOS [编程题] 选工作(80%通过率) [TOC] Question 为了找到自己满意的工作,...

  • 网易笔试2018编程题

    第一题 [编程题] 牛牛找工作时间限制:2秒 空间限制:65536K 为了找到自己满意的工作,牛牛收集了每种工作的...

  • 网易编程题 混合颜料

    题目描述 你就是一个画家!你现在想绘制一幅画,但是你现在没有足够颜色的颜料。为了让问题简单,我们用正整数表示不同颜...

  • 网易编程题 地牢逃脱

    题目描述 给定一个 n 行 m 列的地牢,其中 '.' 表示可以通行的位置,'X' 表示不可通行的障碍,牛牛从 (...

网友评论

      本文标题:网易编程题 幸运的袋子

      本文链接:https://www.haomeiwen.com/subject/yoqmlftx.html