欢乐赛#43题解T1-4
2025-03-19 17:53:13
发布于:广东
一,买花
只要使用
if
else if
else
分支判断就行了
代码如下:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a;
cin>>a;
if(a<=100){
cout<<a<<endl;
}else if(a<=200){
cout<<a-10;
}else if(a<=300){
cout<<a-20;
}else {
cout<<a-50;
}
return 0;
}
二,有趣的任务
为了防止直接给另一个变量赋值导致数据丢失,可以多定义一个变量。
代码如下:
#include<bits/stdc++.h>
using namespace std;
int main(){
int a[6666],n,b,c,x;
cin>>n>>b>>c;
for(int i=1;i<=n;i++)cin>>a[i];
x=a[b];
a[b]=a[c];
a[c]=x;
for(int i=1;i<=n;i++)cout<<a[i]<<" ";
return 0;
}
三,摘苹果
这一题考查二维数组。
难度不大,把除角外的数加起来就好了。
注意用long long(从样例就能看出)。
代码如下:
#include<bits/stdc++.h>
using namespace std;
long long n,a[1001][1001],x;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cin>>a[i][j];
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(i==1&&j==1||i==n&&j==1||i==n&&j==n||i==1&&j==n)n+=0;
else x+=a[i][j];
}
}
cout<<x;
return 0;
}
四,数位和为k的个数
首先循环L到R,然后通过
while(x){
m+=x%10;
x/=10;
}
求出位数之和进行对比,如果正确,答案变量+1。
代码如下:
#include<bits/stdc++.h>
using namespace std;
int l,r,k,x,m,s=0;
int main(){
cin>>l>>r>>k;
for(int i=l;i<=r;i++){
x=i;
while(x){
m+=x%10;
x/=10;
}
if(m==k)s++;
m=0;
}
cout<<s;
return 0;
}
第一次写题解,有不足请见谅!
主要是为了水个小礼品
这里空空如也
有帮助,赞一个