专业编程基础技术教程

网站首页 > 基础教程 正文

Python翻牌求最大分(python求最高分)

ccvgpt 2025-03-23 17:39:14 基础教程 6 ℃
def max_score(cards):
    n = len(cards)
    if n == 0:
        return 0
    
    # 初始化动态规划数组
    dp = [0] * n
    
    for i in range(n):
        if i == 0:
            # 第一次翻牌,如果牌数大于0则翻牌
            dp[i] = max(cards[i], 0)
        elif i == 1:
            # 第二次翻牌,如果当前得分加上前一次得分大于0则翻牌
            dp[i] = max(dp[i-1] + cards[i], 0)
        elif i == 2:
            # 第三次翻牌,如果当前得分加上前一次得分大于0则翻牌
            dp[i] = max(dp[i-1] + cards[i], 0)
        else:
            # 从第四次开始,如果当前得分加上前一次得分大于前三次的得分则翻牌
            if dp[i-1] + cards[i] > dp[i-3]:
                dp[i] = dp[i-1] + cards[i]
            else:
                dp[i] = dp[i-3]
    
    return dp[-1]

# 自定义输入
def main():
    # 读取输入
    input_str = input("请输入牌数,用空格分隔:").strip()
    # 将输入字符串转换为整数列表
    cards = list(map(int, input_str.split()))
    
    # 计算并输出结果
    result = max_score(cards)
    print("最大得分为:", result)

# 调用主函数
if __name__ == "__main__":
    main()


Python翻牌求最大分(python求最高分)

最近发表
标签列表