欢乐赛#51题解
2025-07-08 13:24:42
发布于:浙江
抱歉啊,这次题解迟来了。。。
好了,废话少说,直接开始!
第一题:石头剪刀布
传送门
这道题真的没什么好说的,只要你玩过石头剪刀布,就知道布能克石头,所以输出C即可。
第二题:小明的购物计划
传送门
这道题考察点就是多分支,if,else if,else if,else。
唯一要注意的坑点是,小明的购物价格要用float或者double存储,最后要用printf保留小数位。
放代码:
#include<iostream>
using namespace std;
double f;
int main() {
cin>>f;
if(f<=100) {
printf("%.1lf",f*0.8);
}
else if(f<=300) {
printf("%.1lf",f*0.9);
}
else if(f<=500) {
printf("%.1lf",f);
}
else if(f>500) {
printf("%.1lf",f*1.5);
}
return 0;
}
第三题:ac字符串
传送门
纯纯的超级恶心大模拟。只要遍历字符串即可,但是要注意循环的终点和步长。
放代码:
#include<bits/stdc++.h>
using namespace std;
string s;
int cnt=0;
int main() {
getline(cin,s);
for(int i=1;i<s.size();i++) {
if((s[i]=='a' && s[i+1]=='c') || (s[i]=='A' && s[i+1]=='C')) {
cnt++;
}
}
cout<<cnt;
return 0;
}
第四题:四舍五入
传送门
比较坑的一道题,很多人掉🕳里了。
没什么好讲的,要看类似题解看GESP1级2025年3月的第二题“四舍五入”的题解。大部分思路就是看下一位,类似于我们幼年时代数学课上的四舍五入步骤。
放代码?
#include<bits/stdc++.h>
using namespace std;
string s;
int n,m;
int main() {
cin>>n;
getline(cin,s,'.');
cout<<s<<".";
getline(cin,s);
cin>>m;
if(s[m+1]>='0' && s[m+1]<='4') {
for(int i=1;i<=m;i++) {
cout<<s[i];
}
}else {
if(isdigit(s[m+1])==true) {
for(int i=1;i<m;i++) {
cout<<s[i];
}
cout<<s[m]+1;
}
}
return 0;
}
第五题:小明的bingo
注意:后面就不放代码了
也是一道超级恶心大模拟的题,模拟出每行每列每条对角线上的1的个数,类似于错误探测,两个题的传送门一起放:
原题传送门
第六题:3倍
传送门
也是一道超级恶心大模拟题(bushi),只要模拟所有可能可能就行了,注意可以剪枝(bushi*若干)。
总结:
这次欢乐赛主要考察大家的模拟能力,基础代码实现能力,找bug能力。建议赛后再把这六道题做一下,争取全勤卷王!!!
这里空空如也
有帮助,赞一个