欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > 第十五届蓝桥杯大赛软件赛省赛Python 大学 C 组:3.数字诗意

第十五届蓝桥杯大赛软件赛省赛Python 大学 C 组:3.数字诗意

2025/4/5 21:10:03 来源:https://blog.csdn.net/qq_47461600/article/details/147003115  浏览:    关键词:第十五届蓝桥杯大赛软件赛省赛Python 大学 C 组:3.数字诗意

题目1 数字诗意

在诗人的眼中,数字是生活的韵律,也是诗意的表达。

小蓝,当代顶级诗人与数学家,被赋予了”数学诗人”的美誉。他擅长将冰冷的数字与抽象的诗意相融合,并用优雅的文字将数学之美展现于纸上。

某日,小蓝静坐书桌前,目光所及,展现着 n 个数字,它们依次为 a1,a2,…,an,熠熠生辉。

小蓝悟到,如果一个数能够以若干个(至少两个)连续的正整数相加表示,那么它就蕴含诗意。

例如,数字 6 就蕴含诗意,因为它可以表示为 1+2+3。

而 8 则缺乏诗意,因为它无法用连续的正整数相加表示。

小蓝希望他面前的所有数字都蕴含诗意,为此,他决定从这 n 个数字中删除一部分。

请问,小蓝需要删除多少个数字,才能使剩下的数字全部蕴含诗意?

输入格式

第一行包含一个整数 n,表示展示的数字个数。

第二行包含 n 个整数 a1,a2,…,an,表示展示的数字。

输出格式

输出一个整数,表示小蓝需要删除的数字个数,以使剩下的数字全部蕴含诗意。

数据范围

对于 30% 的评测用例,1≤n≤103,1≤ai≤103。
对于所有评测用例,1≤n≤2×105,1≤ai≤1016。

输入样例:
3
3 6 8
输出样例:
1
样例解释

在样例中,数字 3 可以表示为 1+2,数字 6 可以表示为 1+2+3,数字 8 无法表示为连续的正整数相加,因此,需要删除的数字个数为 1。


思路

蓝桥杯有些题目确实光理解就有难度,一开始我以为11=2+3+4+2这种不蕴含诗意,后来才知道它是蕴含诗意的,因为只要有2个及以上的连续数字即可
打表找规律:4,8,16,32都不蕴含诗意➡️只要一个数是2的次幂,就不蕴含诗意

python代码

import os
import sysn=int(input())
data=list(map(int,input().split()))
ans=0
for i in range(n):if data[i]%2==0:while data[i]%2==0:data[i]//=2if data[i]==1:ans+=1
print(ans)

知识点

蓝桥杯笔记:蓝桥杯备赛笔记

  1. 需要注意与下列代码的区别:
import os
import sys
n=int(input())
data=list(map(int,input().split()))
ans=0
for i in range(n):if data[i]%2==0:while data[i]%2==0:data[i]//=2if data[i]==1:ans+=1
print(ans)

区别在于1本身也不蕴含诗意

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词