15届C/C++B组个人思路
填空题
A
#include <iostream>
#define int long long
using namespace std;
int f(int n) {
if (n == 1) return 1;
else return n + f(n - 1);
}
signed main() {
ios::sync_with_stdio(false);
cin.tie(0);
cout << f(50)-f(7) << endl;
return 0;
}
B
笑死,根本不会
程序题
C
直接无脑暴力了
#include <iostream>
#define int long long
using namespace std;
int n;
bool check(int n) {
int js = 1; //1表示奇数 -1表示偶数
while (n > 0) {
int r = n % 10;
n /= 10;
if ((js == 1 && r % 2 == 0) || (js == -1 && r % 2 == 1)) {
return false;
}
js *= -1;
}
return true;
}
signed main() {
ios::sync_with_stdio(false);
cin.tie(0);
int sum = 0;
cin >> n;
for (int i = 1; i <= n; i++) {
if (check(i)) {
sum ++;
}
}
cout << sum << endl;
return 0;
}
D
没看明白题目要考什么算法,直接计算了,看测试数据
n
的范围应该没多少分。
#include <iostream>
#include <cmath>
#define int long long
#define float double
using namespace std;
int n, res;
float d;
signed main() {
ios::sync_with_stdio(false);
cin.tie(0);
cin >> n