zl程序教程

您现在的位置是:首页 >  后端

当前栏目

第十二届蓝桥杯省赛第二场C++B组真题(节选)

C++ 蓝桥 省赛
2023-09-14 09:01:26 时间

一、特殊年份(模拟)

今年是 2021 年,2021 这个数字非常特殊,它的千位和十位相等,个位比百位大 1,我们称满足这样条件的年份为特殊年份。

输入 5 个年份,请计算这里面有多少个特殊年份。

输入格式
输入 5 行,每行一个 4 位十进制数(数值范围为 10009999),表示一个年份。

输出格式
输出一个整数,表示输入的 5 个年份中有多少个特殊年份。

输入样例:
2019
2021
1920
2120
9899
输出样例:
2
样例解释
20219899 是特殊年份,其它不是特殊年份。
# 快乐AC
cnt = 0
for i in range(5):
    i = int(input())
    thousand = i // 1000
    hundred = i // 100 % 10
    ten = i // 10 % 10
    one = i % 10
    if thousand == ten and (one - hundred) == 1:
        cnt += 1
print(cnt)

二、小平方(模拟)

小蓝发现,对于一个正整数 n 和一个小于 n 的正整数 v,将 v 平方后对 n 取余可能小于 n 的一半,也可能大于等于 n 的一半。

请问,在 1 到 n−1 中,有多少个数平方后除以 n 的余数小于 n 的一半。

例如,当 n=4 时,1,2,3 的平方除以 4 的余数都小于 4 的一半。

又如,当 n=5 时,1,4 的平方除以 5 的余数都是 1,小于 5 的一半。

而 2,3 的平方除以 5 的余数都是 4,大于等于 5 的一半。

输入格式
输入一行包含一个整数 n。

输出格式
输出一个整数,表示满足条件的数的数量。

数据范围
1≤n≤10000
输入样例:
5
输出样例:
2
# 模拟
n = int(input())
cnt = 0
for i in range(1,n):
    if ((i**2) % n) < (n / 2):
        cnt += 1
print(cnt)

三、完全平方数(数论)

一个整数 a 是一个完全平方数,是指它是某一个整数的平方,即存在一个整数 b,使得 a=b2。

给定一个正整数 n,请找到最小的正整数 x,使得它们的乘积是一个完全平方数。

输入格式
输入一行包含一个正整数 n。

输出格式
输出找到的最小的正整数 x。

数据范围
对于 30% 的评测用例,1≤n≤1000,答案不超过 1000。
对于 60% 的评测用例,1≤n≤108,答案不超过 108。
对于所有评测用例,1≤n≤1012,答案不超过 1012。

输入样例112
输出样例13
输入样例215
输出样例215

过了一半测试样例

n = int(input())
for i in range(1,n+1):
    if (n*i)**0.5 == int((n*i)**0.5):
        print(i)
        break