蓝桥杯刷题day10——猜灯谜【算法赛】

文章讲述了如何利用Python编写代码解决元宵节灯笼谜题,涉及环形排列下相邻数字的加法运算。
摘要由CSDN通过智能技术生成

一、问题描述

在元宵节的活动现场,有一串环形排列的灯笼,共计  n 个。每个灯笼上伴随着一个谜底以及一个数字,这些数字分别为 a1,a2 ,…,an。

根据元宵节的传统,每个灯笼的谜底都是由相邻两个灯笼上的数字之和得出的。需要注意的是,在环形排列的灯笼中,首尾两个灯笼也是相邻的。

现在,请你计算并依次输出每个灯笼的谜底。

输入格式
第一行包含一个整数 n( 3≤n≤10^5),表示灯笼的数量。 接下来一行,包含 n 个整数 a1,a2,...,an(1≤ai≤10^5 ),表示每个灯笼上的数字. 
输出格式
输出n个整数,分别表示第1,2,...,n个灯笼的谜底。
样例输入

1 2 3 
样例输出
5 4 3

二、解析

  1. 理解环形排列:在环形排列中,首尾两个灯笼是相邻的。这意味着在计算每个灯笼的谜底时,需要考虑前一个灯笼和后一个灯笼的数字,但是对于第一个灯笼,其后一个灯笼是最后一个灯笼;对于最后一个灯笼,其前一个灯笼是第一个灯笼。
  2. 计算谜底
    • 创建一个新的列表a,用于存储每个灯笼的谜底。
    • 遍历ls中的每个数字,对于每个数字ls[i]:如果i不是最后一个索引(即i != n-1),则谜底是ls[i-1](前一个灯笼的数字)和ls[i+1](后一个灯笼的数字)的和。如果i是最后一个索引(即i == n-1),则谜底是ls[n-2](即ls[i-1],最后一个灯笼前一个灯笼的数字)和ls[0](第一个灯笼的数字)的和。
    • 将计算出的谜底依次添加到a列表中。
  3. 输出谜底:最后,将a列表中的谜底转换为字符串,并使用空格连接,然后输出。

        关键在于理解环形排列的特性,即首尾相连。在计算谜底时,需要根据灯笼的位置来判断相邻的灯笼。对于最后一个灯笼,需要特别处理,将其与第一个灯笼视为相邻。

三、python代码

import os
import sys

# 请在此输入您的代码

n=int(input())
ls=list(map(int,input().split()))
a=[]

for i in range(n):
  if i==n-1:
    a.append(ls[i-1]+ls[0])
  else:
    a.append(ls[i-1]+ls[i+1])

print(" ".join(map(str,a)))

四、运行结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

python_198

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值