第十二届蓝桥杯省赛第二场C++B组真题
1.特殊年份
题目
今年是 年, 这个数字非常特殊,它的千位和十位相等,个位比百位大 ,我们称满足这样条件的年份为特殊年份。
输入 个年份,请计算这里面有多少个特殊年份。
输入格式
输入 行,每行一个 位十进制数(数值范围为 至 ),表示一个年份。
输出格式
输出一个整数,表示输入的 个年份中有多少个特殊年份。
输入样例:
2019
2021
1920
2120
9899
输出样例:
2
样例解释
和 是特殊年份,其它不是特殊年份。
代码
#include <iostream>
using namespace std;
int main()
{
int m = 5, ans = 0;
string s;
while (m --) {
cin >> s;
if (s[0] == s[2] && s[3] == s[1] + 1) ans++;
}
cout << ans;
return 0;
}
2.小平方
题目
小蓝发现,对于一个正整数 和一个小于 的正整数 ,将 平方后对 取余可能小于 的一半,也可能大于等于 的一半。
请问,在 到 中,有多少个数平方后除以 nn 的余数小于 nn 的一半。
例如,当 时, 的平方除以 的余数都小于 的一半。
又如,当 时, 的平方除以 的余数都是 ,小于 的一半。
而 的平方除以 的余数都是 ,大于等于 的一半。
输入格式
输入一行包含一个整数 。
输出格式
输出一个整数,表示满足条件的数的数量。
数据范围
输入样例:
5
输出样例:
2
代码
#include <iostream>
using namespace std;
int main() {
int n, ans;
cin >> n;
for (int i = 1; i < n; i++)
if ((i * i) % n < (double) n / 2) ans ++;
cout << ans;
return 0;
}