0702
B4354 [GESP202506 一级] 假期阅读
题目描述
小 A 有一本厚厚的书。这本书总共有 \(n\) 页,小 A 一天中最多只能阅读完其中的 \(k\) 页。小 A 的假期总共有 \(t\) 天,他想知道在假期中最多能阅读完这本书的多少页。
输入格式
第一行,一个正整数 \(n\),表示书的页数。
第二行,一个正整数 \(k\),表示小 A 每天最多阅读的页数。
第三行,一个正整数 \(t\),表示小 A 假期的天数。
输出格式
一行,一个整数,表示假期中所能阅读的最多页数。
输入输出样例 #1
输入 #1
8
3
2
输出 #1
6
输入输出样例 #2
输入 #2
19
3
30
输出 #2
19
说明/提示
对于所有测试点,保证 \(n,k,t\) 均不超过 \(1000\)。
解法1
n = int(input())
k = int(input())
t = int(input())
if(n>k*t):
print(k*t)
else:
print(n)
解法2
n = eval(input())
k = eval(input())
t = eval(input())
print(min(n,k*t))
B4355 [GESP202506 一级] 值日
题目描述
小杨和小红是值日生,负责打扫教室。小杨每 \(m\) 天值日一次,小红每 \(n\) 天值日一次。今天他们两个一起值日,请问至少多少天后,他们会再次同一天值日?
输入格式
第一行,一个正整数 \(m\),表示小杨的值日周期;
第二行,一个正整数 \(n\),表示小红的值日周期。
输出格式
一行,一个整数,表示至少多少天后他们会再次同一天值日。
输入输出样例 #1
输入 #1
4
6
输出 #1
12
说明/提示
对于所有测试点,保证 \(1 \leq m, n \leq 100\)。
解法1
# 输入a和b,输出a和b的最小公倍数
a = int(input())
b = int(input())
for i in range(a,a*b+1):
if(i%a==0 and i%b==0):
print(i)
break
解法2
# 输入a和b,输出a和b的最小公倍数
a = int(input())
b = int(input())
for i in range(a, a*b+1,a):
if(i % b == 0):
print(i)
break
解法3
# 输入a和b,输出a和b的最小公倍数
a = int(input())
b = int(input())
i = 1
while(a*i%b != 0):
i=i+1
print(i*a)
B4356 [GESP202506 二级] 数三角形
题目描述
直角三角形有两条直角边与一条斜边,设两条直角边的长度分别为 \(a, b\),则直角三角形的面积为 \(\frac{ab}{2}\)。
请你计算当直角边长 \(a, b\) 均取不超过 \(n\) 的正整数时,有多少个不同的面积为整数的直角三角形。直角边长分别为 \(a, b\) 和 \(a', b'\) 的两个直角三角形相同,当且仅当 \(a = a'\), \(b = b'\) 或者 \(a = b'\), \(b = a'\)。
输入格式
一行,一个整数 \(n\),表示直角边长的最大值。
输出格式
输出一行,一个整数,表示不同的直角三角形数量。
输入输出样例 #1
输入 #1
3
输出 #1
3
输入输出样例 #2
输入 #2
5
输出 #2
9
说明/提示
对于所有测试点,保证 \(1 \leq n \leq 1000\)。
n = int(input())
cnt = 0
for i in range(1,n+1):
for j in range(1,i+1):
if(i*j%2==0):
cnt=cnt+1
print(cnt)
B4357 [GESP202506 二级] 幂和数
题目描述
对于正整数 \(n\),如果 \(n\) 可以表为两个 \(2\) 的次幂之和,即 \(n = 2^x + 2^y\)(\(x, y\) 均为非负整数),那么称 \(n\) 为幂和数。
给定正整数 \(l, r\),请你求出满足 \(l \leq n \leq r\) 的整数 \(n\) 中有多少个幂和数。
输入格式
一行,两个正整数 \(l, r\),含义如上。
输出格式
输出一行,一个整数,表示 \(l, r\) 之间幂和数的数量。
输入输出样例 #1
输入 #1
2 8
输出 #1
6
输入输出样例 #2
输入 #2
10 100
输出 #2
20
说明/提示
对于所有测试点,保证 \(1 \leq l \leq r \leq 10^4\)。
## 判断 n 是否是幂和数 如果是 输出Yes 否则输出No
## 6 = 1+5 2+4 3+3
## 10 = 1+9 2+8 3+7 4+6 5+5
## 7 = 1+6 2+5 3+4
l,r = [int(x) for x in input().split()]
cnt = 0
for n in range(l,r+1):
b = False
for i in range(1,n//2+1):
##print(i,n-i,sep='+',end=' ')
if(i&(i-1)==0 and (n-i)&(n-i-1)==0):
b = True
break
if(b):
cnt = cnt+1
print(cnt)
B4037 [GESP202409 二级] 小杨的 N 字矩阵
题目描述
小杨想要构造一个 \(m \times m\) 的 \(N\) 字矩阵(\(m\) 为奇数),这个矩阵的从左上角到右下角的对角线、第 \(1\) 列和第 \(m\) 列都是半角加号 + ,其余都是半角减号 - 。例如,一个 \(5 \times 5\) 的 N 字矩阵如下:
+---+
++--+
+-+-+
+--++
+---+
请你帮小杨根据给定的 \(m\) 打印出对应的 N 字矩阵。
输入格式
输入只有一行包含一个正整数 \(m\)。
输出格式
输出对应的 \(N\) 字矩阵。
输入输出样例 #1
输入 #1
5
输出 #1
+---+
++--+
+-+-+
+--++
+---+
说明/提示
数据规模与约定
对全部的测试数据,保证 \(3 \leq m \leq 49\) 且 \(m\) 是奇数。
n = int(input())
for i in range(n):
for j in range(n):
if(j==0 or j==n-1 or i==j):
print('+',end='')
else:
print('-',end='')
print()

浙公网安备 33010602011771号