欢乐赛#35 题解
2024-12-10 14:32:15
发布于:江苏
欢乐赛#35 题解
第一题
很简单的一题,没有什么需要讲解的
#include <iostream>
using namespace std;
int a;
int main()
{
cin >> a;
cout << a + 114514;
return 0;
}
第二题
模拟即可,求数组中偶数的数量,&运算比%运算快
#include <bits/stdc++.h>
using namespace std;
int n, tmp, cnt;
int main()
{
cin >> n;
for (int i = 1; i <= n; i++)
{
cin >> tmp;
if ((tmp & 1) == 0)
cnt++;
}
cout << cnt << endl;
return 0;
}
第三题
主要考察的是数位分离,看分离之后有几个6
#include <bits/stdc++.h>
using namespace std;
int n, cnt;
int main()
{
cin >> n;
while (n)
{
if (n % 10 == 6)
cnt++;
n /= 10;
}
cout << cnt << endl;
return 0;
}
第四题
本题最难理解的可能就是【下三角矩形】的含义,不要被题目中的文字误导,主要看【下三角矩形】的定义:如果一个矩阵主对角线上方的元素全部为 0,那么该矩阵被称为「下三角矩阵」。
那我们只要看主对角线上面的数字即可,即是主对角线,就是主对角线上面的元素,只要不等于0,就输出NO
#include <bits/stdc++.h>
using namespace std;
int n, a[105][105];
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 = 2; i <= n; i++)
{
if (a[i - 1][i] != 0)
{
cout << "NO" << endl;
return 0;
}
}
cout << "YES" << endl;
return 0;
}
第五题
本题可以用简单的方法,substr()函数,即截取字符串
substr(start, length)函数,start表示从第几个字符开始,length表示截取的长度
#include <bits/stdc++.h>
using namespace std;
string s;
int a,b;
int main()
{
cin >> s >> a >> b;
cout << s.substr(a-1,b-a+1);
return 0;
}
第六题
本题主要考察进制转换,首先将n转化为8进制,再将8进制看成16进制,转化为10进制
注意:8进制里面不含有16进制中的A-F,所以直接将8进制转化为10进制即可
#include <bits/stdc++.h>
using namespace std;
int n, m[32], i, ans;
int main()
{
cin >> n;
// 将n转化成8进制
while (n)
{
m[++i] = n % 8;
n /= 8;
}
int p = 0; // 记录当前是第几位
for (int j = 1; j <= i; j++)
ans += m[j] * pow(16, p++);
cout << ans << endl;
return 0;
}
全部评论 1
来自小码王老师的专业代码
2024-12-15 来自 江苏
0
有帮助,赞一个