2024年8月邀请赛题解
2024-08-19 19:42:22
发布于:浙江
2024年8月邀请赛结束了,接下来出题人我来写一下用C++做的题解:
第一题,输出三角形,这道题直接输出即可,换行可以用endl,AC代码如下:
#include<bits/stdc++.h>
using namespace std;
int main(){
cout<<" *"<<endl;
cout<<" * *"<<endl;
cout<<" * *"<<endl;
cout<<" * *"<<endl;
cout<<"*********";
return 0;
}
第二题,加减混合,这道题要计算a+b-c的值,这三个数都是浮点数,所以输入的a,b,c应该为float或double类型的,输出要保留两位,建议用printf,AC代码如下:
#include<bits/stdc++.h>
using namespace std;
double a,b,c;
int main(){
cin>>a>>b>>c;
printf("%.2lf",a+b-c);
return 0;
}
第三题,世界杯冠军,这道题只需要知道2000年以后的每届世界杯的冠军和其的英文,可以用分支语句来做,重点考察的是足球和英文的知识,AC代码如下:
#include<bits/stdc++.h>
using namespace std;
int n;
int main(){
cin>>n;
if(n==2022){
cout<<"Argentina";
}
else if(n==2018){
cout<<"France";
}
else if(n==2014){
cout<<"Germany";
}
else if(n==2010){
cout<<"Spain";
}
else if(n==2006){
cout<<"Italy";
}
else{
cout<<"Brazil";
}
return 0;
}
第四题,买东西,这道题需要用到多层循环,首先输入一个n,然后循环n次,每次输入一个数,定义一个变量求和,每次加上这个数,之后用到三层循环,我的代码中i表示1元的硬币,j表示3元的硬币,k表示4元的硬币,然后进行判断,用到取较小值的函数min来获取最小的硬币数量,最后输出即可,AC代码如下:
#include<bits/stdc++.h>
using namespace std;
int n,t,s,m,i,j,k;
int main(){
cin>>n;
m=10000;
for(i=0;i<n;i++){
cin>>t;
s+=t;
}
for(i=0;i<=s;i++){
for(j=0;j<=s/3;j++){
for(k=0;k<=s/4;k++){
if(i+j*3+k*4==s){
m=min(m,i+j+k);
}
}
}
}
cout<<m;
return 0;
}
第五题,加加减减,可能是我的数据有点问题,有一个测试点我一直过不去,90分的代码如下:
#include<bits/stdc++.h>
using namespace std;
int s,t;
char a;
int main(){
cin>>s;
while(cin>>a>>t){
if(a=='+'){
s+=t;
}
else{
s-=t;
}
}
cout<<s;
return 0;
}
第六题,最小的x,这道题用暴力方法会超时,所以要用到欧几里得扩展定理,AC代码如下:
#include<bits/stdc++.h>
using namespace std;
long long a,b,x,y;
void exgcd(long long a, long long b){
long long n;
if(b==0){
x=1;
y=7;
return;
}
exgcd(b,a%b);
n=x;
x=y;
y=n-a/b*y;
}
int main(){
cin>>a>>b;
exgcd(a,b);
x=(x%b+b)%b;
printf("%lld\n",x);
return 0;
}
好了本期题解就分享到这里了,这是我第一次写题解,如果不喜欢或者有问题,欢迎在本文下方留言,看完题解,如果你已经对这些题跃跃欲试了,可以在题单2024年8月邀请赛题目里面提交,谢谢阅读!
这里空空如也
有帮助,赞一个