【Python入门】洛谷刷题Day2

P1150

Peter 的烟

题目描述

Peter 有 n 根烟,他每吸完一根烟就把烟蒂保存起来,k(k>1)个烟蒂可以换一个新的烟,那么 Peter 最终能吸到多少根烟呢?

与某些脑筋急转弯不同的是,Peter 并不能从异次元借到烟蒂,抽完后再还回去。

输入格式

每组测试数据一行包括两个整数 n,k(1<n,k≤108)。

输出格式

对于每组测试数据,输出一行包括一个整数表示最终烟的根数。

# 有n根烟,k(k>1)个烟蒂可以换一个新的烟
n, k = map(int, input().split())
# 初始化:total抽掉的烟根数=stubs烟蒂数=n(一次性抽完n根,拿n个烟蒂去兑换)
total = n
stubs = n
while stubs>=k:
    # 有stubs个烟蒂,可以增加烟的数量add_cig
    # //整除,结果向下取整
    add_cig = stubs // k
    total += add_cig
    # 更新烟蒂数量
    stubs = stubs % k + add_cig
# 输出最终烟的根数
print(total)

P1151

子数整数

题目描述

k = int(input())
num = 10000
has_solution = False
for num in range(10000,30001):
    s = str(num)
    sub1 = int(s[0:3])
    sub2 = int(s[1:4])
    sub3 = int(s[2:5])
    if sub1 % k == 0 and sub2 % k == 0 and sub3 % k == 0:
        print(num)
        has_solution = True
if not has_solution:
    print("No")

输入:15

输出结果:

22555
25555
28555
30000

P1152

欢乐的跳

题目描述

一个 n 个元素的整数数组,如果数组两个连续元素之间差的绝对值包括了 [1,n−1] 之间的所有整数,则称之符合“欢乐的跳”,如数组 {1,4,2,3} 符合“欢乐的跳”,因为差的绝对值分别为:3,2,1。

给定一个数组,你的任务是判断该数组是否符合“欢乐的跳”。

输入格式

每组测试数据第一行以一个整数 n(1≤n≤1000) 开始,接下来 n 个空格隔开的在 [−108,108] 之间的整数。

输出格式

对于每组测试数据,输出一行若该数组符合“欢乐的跳”则输出 Jolly,否则输出 Not jolly

# 读取输入并转换为整数列表
s = list(map(int, input().split()))
n = s[0]  # 第一个元素是 n

# 生成正确的差值列表 [1, 2, ..., n-1]
correct = list(range(1, n))

# 计算相邻元素的差值
calculate = []
for i in range(1, n):  # 从第二个元素开始
    sub = abs(s[i] - s[i + 1])  # 计算相邻元素的绝对差
    calculate.append(sub)

# 对差值列表进行排序
calculate.sort()

# 判断是否为 Jolly Jumper
if calculate == correct:
    print("Jolly")
else:
    print("Not jolly")
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值