中秋欢乐赛#28解题
2024-09-16 10:01:00
发布于:广东
解题来咯!
T1:
挺简单的,四个max套一起就行了
#include<iostream>
using namespace std;
int main(){
int a,s,d,f;
cin>>a>>s>>d>>f;
cout<<max(a,max(s,max(d,f)));
return 0;
}
T2:
也挺简单的,按照题目意思直接套就行
#include<bits/stdc++.h>
using namespace std;
int main(){
string a;
double s;
cin>>a>>s;
if(a=="ceil") cout<<ceil(s);
else if(a=="floor") cout<<floor(s);
else cout<<round(s);
return 0;
}
T3:
直接计算总和,然后比大小就行了
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,x,a[110]={},sum=0;
cin>>n>>x;
for(int i=1;i<=n;i++){
cin>>a[i];
sum+=a[i];
if(sum>x) {
cout<<"NO";
return 0;
}
}cout<<"YES";
return 0;
}
T4:
用叫什么高斯函数还是啥的东西解决就行
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
cout<<n*(1+n)/2;
return 0;
}
T5:
双层for就行了
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,sum=0;
cin>>n;
for(int i=1;i<=n;i++){
for(int j=1;j<=i;j++){
sum+=j;
}
}cout<<sum;
return 0;
}
T6:
理解意思就行了
#include<bits/stdc++.h>
using namespace std;
int main(){
long long n,maxn=0,ansa;
string anss;
cin>>n;
for(int i=1;i<=n;i++){
long long a;
string s;
cin>>a>>s;
double ans=a*1.0;
if(s=="B"){
ans/=1000.0;
ans/=1000.0;
ans/=1000.0;
}if(s=="KB"){
ans/=1000.0;
ans/=1000.0;
}if(s=="MB"){
ans/=1000.0;
}if(ans>maxn){
maxn=ans;
ansa=a;
anss=s;
}
}cout<<ansa<<" "<<anss;
return 0;
}
T7:
直接暴力一点解决就行了
#include<bits/stdc++.h>
using namespace std;
int main(){
string s;
int a=0,c=0,g=0,o=0;
cin>>s;
for(int i=0;i<s.size();i++){
if(a==0){
if(s[i]=='a') a=1;
}else if(a==1&&c==0){
if(s[i]=='c') c=1;
}else if(a==1&&c==1&&g==0){
if(s[i]=='g') g=1;
}else if(a==1&&c==1&&g==1&&o==0){
if(s[i]=='o') o=1;
}
}if(a==1&&c==1&&g==1&&o==1) cout<<"YES";
else cout<<"NO";
return 0;
}
T8:
用set解决就行了
我优化了一点点
#include<iostream>
#include<unordered_set>
using namespace std;
int main(){
int n,k;
cin>>n>>k;
unordered_set<int> val;
long long sum=0;
for(int i=1;i<=k;++i) sum+=i;
for(int i=0;i<n;++i){
int a;
cin>>a;
if(a>=1&&a<=k&&val.insert(a).second) sum-=a;
}cout<<sum<<endl;
return 0;
}
你
学会了吗?
这里空空如也
有帮助,赞一个