第一道题:戴口罩 AC
#include <algorithm>
#include <iostream>
using namespace std;
int n, d = 3, k = 10;
int main() {
scanf("%d", &n);
while (k != n) {
k--;
if (d%7==1 || d%7==2) k += 7;
d++;
}
printf("%d", d-3);
return 0;
}
第二道题:计算GPA AC
#include <algorithm>
#include <iostream>
using namespace std;
string s;
double gpa = 0;
int ct = 0;
int main() {
getline(cin, s);
for (int i = 0; i < s.size(); i++) {
if (s[i] == '+')
gpa += 0.3;
else if (s[i] == '-')
gpa -= 0.3;
else {
gpa += 69 - s[i];
ct++;
}
}
printf("%.2lf", gpa / ct);
return 0;
}
第三道题:
#include <algorithm>
#include <iostream>
using namespace std;
const int N = 107;
char a[N][N];
int n, m;
int f(int x, int y) {
int ans = 0;
for (int i = x-1; i <= x+1; i++)
for (int j = y-1 ; j <= y+1; j++)
if (a[i][j] == '*') ans++;
return ans;
}
int main() {
scanf("%d%d", &n, &m);
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++)
cin >> a[i][j];
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
if (a[i][j] == '*') cout << "*";
else cout << f(i, j);
}
puts("");
}
return 0;
}
第四道题:增长与翻倍 AC
#include <algorithm>
#include <iostream>
using namespace std;
int s, t, ans = 0;
int main() {
scanf("%d%d", &s, &t);
while (s < t) {
if (t%2 == 1) t--;
else if (t/2 >= s) t /= 2;
else break;
ans++;
}
ans += t-s;
printf("%d", ans);
return 0;
}
第五道题:最大回撤 AC
#include <algorithm>
#include <iostream>
using namespace std;
int price = -1e5, loss = -1e9;
int main() {
int n, a;
scanf("%d", &n);
for (int i = 1; i <= n; i ++) {
scanf("%d", &a);
price = max(price, a);
loss = max(loss, price - a);
}
printf("%d\n", loss);
return 0;
}
若有更好的解,欢迎评论或私信与我~