栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

第十二届蓝桥杯国赛-H:和与乘积-python

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

第十二届蓝桥杯国赛-H:和与乘积-python

一、问题描述

 二、问题分析

        对于输入的一个数列,求这个数列的满足以下条件的区间个数:该区间的元素和与元素积相等。思路就是计算每一个区间的元素和与元素积,如果相等就计数加一。

        获取每个区间采用前缀和跟前缀积的方法,详见代码。

        注:这种方法也只能通过个别案例,不能完全通过。

三、代码
#encoding:utf-8
num=0
n=int(input())
l=list(map(int,input().split()))
qzh=[l[0]]#前缀和列表
qzj=[l[0]]#前缀积列表
for i in range(1,len(l)):#求前缀和、前缀积
        a=qzh[i-1]+l[i]
        qzh.append(a)
        a=qzj[i-1]*l[i]
        qzj.append(a)
for i in range(n):#比对每一个序列
    if qzh[i]==qzj[i]:
        num+=1
    for j in range(i+1,n):
        if qzh[j]-qzh[i]==qzj[j]/qzj[i]:
            num+=1
print(num)

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/273060.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号