网站首页 > 技术文章 正文
单项选择题
解析:单行注释://
多行注释:/* 注释内容 */
解析:main函数有且只有一个,是 C++ 程序的入口。
解析:int 是关键字。
解析:二进制加法,0 + 0 = 0,1 + 0 = 1,0 + 1 = 1,1 + 1 = 10
解析:int* 是指向int类型的指针,pa[5] 是数组,数组中每一个元素都是一个int型指针。
编程题
解析:循环嵌套判断进行枚举,符合要求的数字直接输出。
- #include<bits/stdc++.h>
- using namespace std;
- int main(){
- int n;
- cin >> n;
- for(int i = 1; i <= n; i++)
- if(i % 7 == 0)
- cout << i << ' ';
- return 0;
- }
解析:变量 x 存储 1、3、6、10……,差值为等差数列,再将变量 x 累加到 s 变量中。
- #include<bits/stdc++.h>
- using namespace std;
- int main(){
- int n;
- cin >> n;
- int x = 0, s = 0;
- for(int i = 1; i <= n; i++){
- x += i;
- s += x;
- }
- cout << s;
- return 0;
- }
解析:本质上是冒泡排序,统计相邻元素交换次数。
- #include <bits/stdc++.h>
- using namespace std;
- int n;
- int a[1010];
- int main() {
- cin >> n;
- for(int i = 1; i <= n; i++) cin >> a[i];
- int res = 0;
- for(int i = 1; i < n; i++){
- for(int j = 1; j < n; j++)
- if(a[j] > a[j + 1]){
- swap(a[j], a[j + 1]);
- res++;
- }
- }
- cout << res;
- return 0;
- }
解析:日期问题虽然不属于某一种算法,然而,各种算法竞赛中经常考到,模拟起来略有复杂,一般都要设置一个判断闰年的函数,以及一个存储每月最大天数的数组,可以使得编程时更加容易。
因此,平时练习可以将日期问题进行分类。
- #include <bits/stdc++.h>
- using namespace std;
- bool is_leap(int n){
- return (n % 4 == 0 && n % 100) || n % 400 == 0;
- }
- int n;
- int months[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
- int y = 1999, m = 4, d = 30;
- int main() {
- cin >> n;
- for(int i = 2; i <= n; i++){
- d++;
- if(m == 2) months[2] = 28 + is_leap(y);
- if(d > months[m]){
- d = 1;
- if(m == 12){
- m = 1;
- y++;
- }
- else m++;
- }
- }
- printf("%d-%02d-%02d", y, m, d);
- return 0;
- }
解析:试除法判断质数,然后判断一个数字和其逆序数是否均为质数。
求数字逆序可以利用stirng字符串反转快速实现。
- #include <bits/stdc++.h>
- using namespace std;
- bool is_prime(int n){
- for(int i = 2; i <= n / i; i++)
- if(n % i == 0)
- return false;
- return true;
- }
- int main() {
- int n;
- cin >> n;
- int res = 0;
- for(int i = 2; i <= n; i++){
- string s = to_string(i);
- reverse(s.begin(), s.end());
- int j = stoi(s);
- if(is_prime(i) && is_prime(j))
- res++;
- }
- cout << res;
- return 0;
- }
解析:题干较长,是一道完全二叉树问题,但是求解思路很简单,只需将结点权值按照层序遍历分组求和,第一层1个结点,第二层2个结点,第三层四个结点,以此类推。
不需要考虑最后一层结点没有铺满情况,因为是全局数组,默认值为0,没有结点和累加0的作用是一样的。
- #include <bits/stdc++.h>
- using namespace std;
- int n;
- int a[210];
- int main() {
- cin >> n;
- for(int i = 1; i <= n; i++) cin >> a[i];
- int maxv = -1, idx = 0, level = 0;
- for(int i = 1; ; i++){
- int sum = 0;
- for(int j = 1; j <= (1 << (i - 1)); j++)
- sum += a[++idx];
- if(sum > maxv){
- maxv = sum;
- level = i;
- }
- if(idx > n) {
- cout << level;
- return 0;
- }
- }
- return 0;
- }
猜你喜欢
- 2025-06-08 洛谷刷题C++语言 | P1036 选数(洛谷p5719答案c语言)
- 2025-06-08 用C实现协程库(c++20协程库)
- 2025-06-08 树莓派Pico快速上手教程之MicroPython和C使用说明
- 2025-06-08 洛谷刷题C++语言 | P1618 三连击(升级版)
- 2025-06-08 c++中的对齐问题(c++怎么左对齐)
- 2025-06-08 洛谷刷题C++语言 | P1135 奇怪的电梯
- 2025-06-08 小猴编程C++ | 特殊的三位数(小猴编程学而思编程)
- 2025-06-08 洛谷刷题C++语言 | P1424 小鱼的航程(改进版)
- 2025-06-08 小猴编程C++ | 数字替换(小猴编程官网)
- 2025-06-08 C++ 20 module小试(c++实验二)
- 08-06中等生如何学好初二数学函数篇
- 08-06C#构造函数
- 08-06初中数学:一次函数学习要点和方法
- 08-06仓颉编程语言基础-数据类型—结构类型
- 08-06C++实现委托机制
- 08-06初中VS高中三角函数:从"固定镜头"到"360°全景",数学视野升级
- 08-06一文讲透PLC中Static和Temp变量的区别
- 08-06类三剑客:一招修改所有对象!类方法与静态方法的核心区别!
- 1531℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 687℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 536℃MySQL service启动脚本浅析(r12笔记第59天)
- 501℃启用MySQL查询缓存(mysql8.0查询缓存)
- 500℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 486℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 469℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 467℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- windowsscripthost (69)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (70)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)