ACGO欢乐赛 #36| 全题解
2024-12-30 11:25:38
发布于:北京
欢乐赛链接:ACGO欢乐赛#36
前言: 近几次的ACGO欢乐赛难度持续下降,希望官方下一次不要进一步下降难度,本人萌新已经AK多次欢乐赛了 本次也是我第二次欢乐赛题解,希望大家多多支持
我想要周边本次比赛题解接受之前的建议,将给出每道题的AC代码
由于那个阿里云的敏感词系统太**了,我上次的题解变成了null
题目名称:求一个负数的绝对值
难度:入门
时间限制:
内存限制:
这道题让我们求一个数的绝对值,也就是这个数距离数轴上0点的位置,我们可使用头文件中的函数,用于求一个数的绝对值
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;//定义整数变量n
cin >> n;//输入
cout << abs(n);//调用abs()函数,并输出绝对值
return 0;
}
T2:A.35620倍数问题
题目名称:倍数问题
难度:入门
时间限制:
空间限制:
本题让我们求一个数是不是同时是和的倍数,检测一个数是不是的倍数可以用来检测,由于是既,又关系,所以用与运算
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;//定义整数n
cin >> n;//输入
if(n % 4 == 0 && n % 6 == 0){//检测倍数
cout << "YES" << endl;//输出
}else{
cout << "NO" << endl;//输出
}
return 0;
}
题目名称:数组元素和下标的和
难度:入门
时间限制:
空间限制:
本题让我们将数组的每个元素都加上下标,也就是对于每个都
#include <bits/stdc++.h>
using namespace std;
int main(){
int arr[1200] = {};//定义数组
int n;
cin >> n;
for (int i = 1;i <= n;i ++) cin >> arr[i];//循环输入
for (int i = 1;i <= n;i ++){
arr[i] += i;//相加
cout << arr[i] << " ";//输出
}
return 0;
}
T4:A.35622 交换字符
题目名称:交换字符
难度:入门
时间限制:
空间限制:
本题让我们对一个长度为字符串和中的奇数下标上的字符进行交换,最终输出也就是要对每个下标看结果是否为1,如果结果为1,则是奇数,我们可以用函数实现交换字符,特别注意:字符串下标从开始,所以要对下标
#include <bits/stdc++.h>
using namespace std;
int main(){
string s1,s2;//定义string类对象
int n;//字符个数
cin >> n;//输入
cin >> s1 >> s2;//输入字符串
for (int i = 0;i < n;i ++){
if((i + 1) % 2 == 0){//看看+1是不是奇数
swap(s1[i],s2[i]);//交换
}
}
cout << s1 << endl;//输出
return 0;
}
题目名称:二维数组
难度:入门
时间限制:
空间限制:
本题让我们对一个的二维数组进行计算“边缘元素”的和,就是将这个二维数组进行输入,如果对于数组中每个查看是否满足,若满足则答案加上
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;//数组尺寸
int arr[1200][1200] = {};//定义二维数组
cin >> n;
for (int i = 1;i <= n;i ++)
for (int j = 1;j <= n;j ++)
cin >> arr[i][j];//循环输入
long long sum = 0;//记录总和
for (int i = 1;i <= n;i ++){
for (int j = 1;j <= n;j ++){
if(i == 1 || i == n ||j == 1 ||j == n){//检测
sum += arr[i][j];//记录总和
}
}
}
cout << sum;//输出总和
return 0;
}
题目名称:最大公因数
难度:入门
时间限制:
空间限制:
本题让我们对于个测试点,每个输入正整数求最大公因数,我们知道,公因数就是能被这4个数整除的数,也就是依次检测倍数关系,检测,找到这4个数中最小的数为止,求其中最大值。
#include <bits/stdc++.h>
using namespace std;
int main(){
int t = 0;//数据组数
cin >> t;//输入
while(t --){//每组
int x = 0,y = 0,a = 0,b = 0;//四个数
cin >> x >> y >> a >> b;
int ans = 0;
for (int i = 1;i <= min(x,min(y,min(a,b)));i ++){//依次检测
if(x % i == 0 && y % i == 0 && a % i == 0 && b % i == 0){//检测
ans = i;//记录
}
}
cout << ans << endl;//输出
}
return 0;
}
以上便是本期ACGO欢乐赛#36全题解的全部内容! 点个赞呗
全部评论 5
AK欢乐赛不好吗
2024-12-25 来自 浙江
0但题目似乎太简单了
2024-12-25 来自 北京
0
顶
2024-12-24 来自 四川
0谢谢
2024-12-24 来自 北京
02024-12-24 来自 四川
0
2024-12-24 来自 北京
0顶
2024-12-24 来自 北京
0顶
2024-12-24 来自 北京
0
有帮助,赞一个