Python|每日一练|取余%|向上取整math.ceil ()|周期数补0位| index()方法:吃!吃!吃!

目录

题目名称:吃!吃!吃!

题目描述

输入描述:

输出描述:

示例 

模板

解题思路:

示例代码:

PS: Python index()方法

实例

PS2: Python math.ceil() 方法

语法

返回值

实例

实例


题目名称:吃!吃!吃!

时间限制:1000ms内存限制:256M

题目描述

已知n个整数。 每3个数算一个周期。 不足一个周期补0. 在周期的第一个位置的数的权值和等于a1+a[1+3]+… … 求三个数的最大权值。 如果最大权值为第一个数,输出’J’; 最大权值为第二个数,输出’H’; 最大权值为第三个数,输出’B’。

输入描述:

第一行输入一个整数n。(1<=n<=100) 第二行输入n个整数。

输出描述:

输出答案。

示例 

示例1

输入4
1 1 1 1
复制

输出J

模板

# 请关闭中文输入法,用英文的字母和标点符号。
# 如果你想运行系统测试用例,请点击【执行代码】按钮,如果你想提交作答结果,请点击【提交】按钮,
# 注意:除答案外,请不要打印其他任何多余的字符,以免影响结果验证
# 本OJ系统是基于 OxCoder 技术开发,网址:www.oxcoder.com
# 模版代码提供基本的输入输出框架,可按个人代码习惯修改

class Solution:
    def __init__(self) -> None:
        pass

    def solution(self, n, arr):
        result = None

        # TODO: 请在此编写代码

        return result


if __name__ == "__main__":
    n = int(input().strip())

    arr = [int(item) for item in input().strip().split()]

    sol = Solution()
    result = sol.solution(n, arr)

    print(result)

解题思路:

1、已知n个整数。 每3个数算一个周期。 不足一个周期补0.

如果不是完整的3的周期数,则有:n % 3!= 0,

2、凑齐3的最小倍数,调用math函数库: math.ceil(n / 3) * 3,尾部循环补0,arr.append(0)

以示例为例,输入1 1 1 1,补0后,arr= [1, 1, 1, 1, 0, 0]

3、”第一个位置的数的权值和等于res1+res[1+3]+… … 求三个数的最大权值”

释义:

将每个周期内的三个位置分别定义为0,1,2,不同周期的相同位置加和,并保存在数组res中

如果最大的加和(题意所指的最大权重)出现的位置是在0位(即最大权值为第一个数),则,输出‘J’;

如果最大的加和(题意所指的最大权重)出现的位置是在1位(即最大权值为第二个数),则,输出‘H’;

其他情况,出现在2位(最大权值为第三个数),输出’B’

示例代码:

import math
class Solution:
    def __init__(self) -> None:
        pass
    def solution(self, n, arr):
        result = None
        res= []
        if n % 3 != 0:
            for i in range(n, math.ceil(n / 3) * 3):
                arr.append(0)
                n += 1
        for i in range(0, 3):
            sum_i = 0
            for j in range(0, int(n / 3)):
                sum_i += arr[i + 3 * j]
            res.append(sum_i)
        if res.index(max(res)) == 0:
            result = "J"
        elif res.index(max(res)) == 1:
            result = "H"
        else:
            result = "B"
        return result

if __name__ == "__main__":
    n = int(input().strip())
    arr = [int(item) for item in input().strip().split()]
    sol = Solution()
    result = sol.solution(n, arr)
    print(result)

PS: Python index()方法

https://www.runoob.com/python/att-string-index.html


描述

Python index() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) end(结束) 范围,则检查是否包含在指定范围内,该方法与 python find()方法一样,只不过如果str不在 string中会报一个异常。

语法

index()方法语法:

str.index(substring, beg=0, end=len(string))

参数

  • substring -- 指定检索的字符串。
  • beg -- 开始索引,默认为 0
  • end -- 结束索引,默认为字符串的长度。

返回值

如果包含子字符串返回开始的索引值,否则抛出异常。

实例

以下实例展示了 index() 方法的实例:

实例(Python 2.0+)

#!/usr/bin/python
 
str1 = "this is string example....wow!!!"
str2 = "exam"
 
print str1.index(str2)
print str1.index(str2, 10)
print str1.index(str2, 40)

以上实例输出结果如下:

15

15

Traceback (most recent call last):

  File "test.py", line 8, in

  print str1.index(str2, 40);

ValueError: substring not found

shell returned 1

注意:在接下来的几个章节中,我们会详细介绍 Python Exception 的使用。

PS2: Python math.ceil() 方法

引自:https://www.runoob.com/python3/ref-math-ceil.html

Python math.ceil(x) 方法将 x 向上舍入到最接近的整数。

math.floor() 方法将数字向下舍入到最接近的整数。

语法

math.ceil() 方法语法如下:

math.ceil(x)

参数说明:

  • x -- 必需,数字。如果 x 不是一个数字,返回 TypeError

返回值

返回一个整数,表示舍入的数字。

实例

以下实例返回向上舍入到最接近的整数:

实例

# 导入 math
import math

# 输出向上舍入到最接近的整数
print(math.ceil(1.4))
print(math.ceil(5.3))
print(math.ceil(-5.3))
print(math.ceil(22.6))
print(math.ceil(10.0))

输出结果:

2
6
-5
23
10
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

打酱油的工程师

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

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

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

打赏作者

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

抵扣说明:

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

余额充值