XJOI一级一段题解(g++,即C++),也可视作C++算法竞赛教程

2023-10-17 14:38

本文主要是介绍XJOI一级一段题解(g++,即C++),也可视作C++算法竞赛教程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

Problem 9291 Hello OI

一 题目内容

二 新知识点

2.1 头文件

 2.2 命名空间

2.3 注释

2.4 主函数

2.5 标准输出流

三 思路

四 AC代码

Problem 3566 学整数

一 题目内容

二 新知识点

2.1 变量与数据类型

2.2 标准输入流

三 思路

四 AC代码

Problem 1000 萌新关爱之-A+B Problem

一 题目内容

二 新知识点

2.1 数据类型对变量数据存储范围的限制

2.2 int类型的加、减、乘法

三 思路

四 AC代码

Problem 3568 整数除法(求商)

一 题目内容

二 新知识点

2.1 int类型的除法

三 思路

四 AC代码

Problem 3569 求余数

一 题目内容

二 新知识点

2.1 int类型的取余运算

三 思路

四 AC代码

Problem 3570 求个位

一 题目内容

二 新知识点

三 思路

四 AC代码

Problem 3571 求十位数

一 题目内容

二 新知识点

2.1 int类型的混合运算

三 思路

四 AC代码

Problem 9205 长方体表面积与体积

一 题目内容

二 新知识点

2.1 长方体的表面积和体积公式

三 思路

四 AC代码


注:使用题目超链接时,建议先打开XJOI并登录。

Problem 9291 Hello OI

一 题目内容

时间:0.2s 空间:32M

题目描述:

请你自行编写程序,输出”I LOVE OI.”(不包括引号)

输入格式:

本题无输入。

输出格式:

一行字符,为I LOVE OI.

样例输入:

样例输出:

I LOVE OI.

二 新知识点

2.1 头文件

在C++中,每个程序都需要一些功能才能正常运行,比如要想开平方,就得用到cmath头文件里的sqrt()。要想使用头文件,格式是#include<头文件名>。下面这个头文件包含了所有功能:

#include<bits/stdc++.h>

 2.2 命名空间

对于某些特殊功能,如输入和输出,用头文件也解决不了了。这时就需要用到命名空间,其中包含许多实用功能。一般我们使用std(默认)命名空间,代码如下:

using namespace std;

注意,C++每条鱼局结束后都要加英文分号。

2.3 注释

在C++中,可用//加任意内容表示注释。例如:

//这是一条注释

注释后无需添加分号。 

2.4 主函数

功能有了,但该怎样编写代码才能让电脑用上它们呢?用主函数就解决了。写法如下:

int main(){//你的运行代码return 0;
}

注意,主函数中所有代码都需要一个缩进。编程软件一般会自动缩进,如果没有自动缩进或缩进被误删,只需要按下Tab按钮即可进行一次缩进。 

2.5 标准输出流

命名空间std中有一个输出的功能,格式为:

cout<<输出内容1<<输出内容2<<...<<输出内容n;

例如此题中,输出“I LOVE OI.”就可以用标准输出流输出。因为这是由一些字符组成的字符串,所以要用双引号把输出内容括起来。代码如下:

cout<<"I LOVE OI.";

三 思路

使用标准输出流输出“I LOVE OI.”。

四 AC代码

#include<bits/stdc++.h>
using namespace std;
int main(){cout<<"I LOVE OI.";return 0;
}

Problem 3566 学整数

一 题目内容

时间:0.2s 空间:32M

题目描述

小鹦鹉正在学习整数。你跟他说一个整数,他立刻就能学会。

输入一个整数,输出这个整数。

输入格式

一个整数。

输出格式

一个整数。

样例输入

3

样例输出

3

二 新知识点

2.1 变量与数据类型

通过上题,我们知道了字符串类型的存在。因为字符串类型是由字符组成的,所以存在字符类型。另外,还存在整数类型,长整数类型,单精度浮点数,双精度浮点数类型等。

变量像指向一个值的箭头,它里面可存指定数据类型的量。如定义一个整数类型的变量a:

int a;

 当然,还可以给变量指定初始值。如:

int a=1;

就把整数类型变量a的初始值设定为1。

也可以在变量定义之后赋值,如:

int a;
a=1;

就是先定义了一个整数类型变量a,再将其赋值为1。

还可以一次性定义多个同一数据类型的变量,如:

int a,b;

 就是定义了两个

2.2 标准输入流

这一题开始有了输入。输入的功能也包含在std命名空间中,格式如下:

cin>>输入内容1>>输入内容2>>...>>输入内容n;

注意箭头方向与标准输出流相反。

三 思路

先使用标准输入流输入一个整数(记作变量a),再输出a。

四 AC代码

#include<bits/stdc++.h>
using namespace std;
int main(){int a;cin>>a;cout<<a;return 0;
}

Problem 1000 萌新关爱之-A+B Problem

一 题目内容

时间:1s   空间:256M

题目描述

给你两个整数,要求输出这两个整数的和。

输入格式

两个整数a,b。

输出格式

一个整数.

样例输入

1 2

样例输出

3

约定

0<=a,b<=1000

二 新知识点

2.1 数据类型对变量数据存储范围的限制

在前面的练习中,我们已经接触过int类型的变量。其实它是有存储范围限制的,可存储的数从-2147483648到2147483647(包括这两个数),即从-2^{31}2^{31}-1。对于本题0<=a,b<=1000的数据范围,int还是能轻松应对的。

2.2 int类型的加、减、乘法

对于两个int类型变量a和b:

1.只要它们的和还在int存储范围内,那么就可以用a+b来表示它们的和;

2.只要它们的差还在int存储范围内,那么就可以用a-b来表示它们的差;

3.只要它们的积还在int存储范围内,那么就可以用a*b来表示它们的积。

并且可直接输出a+b、a-b、a*b,或将其存入变量内(不管它是除a、b外的一个其他变量还是a、b中的一个)。

当然,也可以进行数与变量、数与数的加、减、乘法。

三 思路

先存下a、b,再直接输出a+b的值。

四 AC代码

#include<bits/stdc++.h>
using namespace std;
int main(){int a,b;cin>>a>>b;cout<<a+b;return 0;
}

Problem 3568 整数除法(求商)

一 题目内容

时间:0.2s   空间:32M

题目描述:

输入两个整数a,b, 输出a/b的值,只保留整数部分

输入格式:

输入两个整数

输出格式:

输出一个整数

样例输入:

5 2

样例输出:

2

二 新知识点

2.1 int类型的除法

对于两个int类型的变量a和b,只要它们的商的整数部分还在int存储范围内,那么就可以用a/b来表示它们的商的整数部分(注意,只保留整数部分),并且可直接输出a/b,或将其存入变量内(不管它是除a、b外的一个其他变量还是a、b中的一个)。

当然,也可以进行数与变量、数与数的除法。

三 思路

输入a和b,输出a/b即可。

四 AC代码

#include<bits/stdc++.h>
using namespace std;
int main(){int a,b;cin>>a>>b;cout<<a/b;return 0;
}

Problem 3569 求余数

一 题目内容

时间:0.2s   空间:32M

题目描述:

输入两个整数a,b, 输出a除以b的余数,如5除以2的余数为1,10除以4的余数为2

输入格式:

输入两个整数

输出格式:

输出一个整数

样例输入:

5 2

样例输出:

1

二 新知识点

2.1 int类型的取余运算

定义整数a除以b的余数为a对b的取余运算的结果,用a%b表示。一般地,对于两个int类型的变量a和b,只要它们取余的结果还在int存储范围内,那么就可以用a%b来表示它们取余的结果,并且可直接输出a/b,或将其存入变量内(不管它是除a、b外的一个其他变量还是a、b中的一个)。

当然,也可以进行数与变量、数与数的取余运算。“取模”与“取余”同义。

三 思路

输入a和b,输出a%b。

四 AC代码

#include<bits/stdc++.h>
using namespace std;
int main(){int a,b;cin>>a>>b;cout<<a%b;return 0;
}

Problem 3570 求个位

一 题目内容

时间:0.2s   空间:32M

题目描述:

输入一个整数a, 求其个位数

输入格式:

输入一个整数

输出格式:

输出一个整数

样例输入:

102

样例输出:

2

二 新知识点

本题无新知识点。

三 思路

先根据样例来分析:102的个位是2,102%10=2。

另外,3298的个位是8,3298%10=8。

\therefore a%10即为所求个位。

四 AC代码

#include<bits/stdc++.h>
using namespace std;
int main(){int a;cin>>a;cout<<a%10;return 0;
}

Problem 3571 求十位数

一 题目内容

时间:0.2s   空间:32M

题目描述:

输入一个整数,求其十位数

输入格式:

输入一个整数

输出格式:

输出一个整数

样例输入:

123

样例输出:

2

二 新知识点

2.1 int类型的混合运算

int类型可做混合运算,按我们小学时学过的“同级运算,从左到右,依次计算”,“先乘除,后加减”,“先算括号内”的顺序进行。取余运算的优先级与乘除相同。

三 思路

根据样例,123的十位为2。另外,1930的十位为3。

根据C++int类型除法的特性(只保留整数部分),所以该数除以10后,就可达到把个位数“消掉”的效果。再对10取余即可获取新数的个位(即原数的十位)。

综上,求十位的方法就是a/10%10

四 AC代码

#include<bits/stdc++.h>
using namespace std;
int main(){int a;cin>>a;cout<<a/10%10;return 0;
}

Problem 9205 长方体表面积与体积

一 题目内容

时间:0.2s   空间:32M

题目描述:

给出长方形的长宽高,输出长方体的表面积和体积。

输入格式:

一行三个不超过100的正整数,表示长方体的长宽高。

输出格式:

一行两个整数,表示长方体的表面积和体积,以空格间隔。

样例输入:

10 10 10

样例输出:

600 1000 

二 新知识点

2.1 长方体的表面积和体积公式

设长方体的长、宽、高分别为a、b、c,则其表面积为2*(a*b+a*c+b*c),是求出前、上、右3个面面积之和后再乘2;体积为a*b*c

三 思路

输入a,b,c后,分别求两个公式的值后再输出,中间用空格隔开。

四 AC代码

#include<bits/stdc++.h>
using namespace std;
int main(){int a,b,c;cin>>a>>b>>c;cout<<2*(a*b+a*c+b*c)<<" "<<a*b*c;return 0;
}

这篇关于XJOI一级一段题解(g++,即C++),也可视作C++算法竞赛教程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/226062

相关文章

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

Makefile简明使用教程

文章目录 规则makefile文件的基本语法:加在命令前的特殊符号:.PHONY伪目标: Makefilev1 直观写法v2 加上中间过程v3 伪目标v4 变量 make 选项-f-n-C Make 是一种流行的构建工具,常用于将源代码转换成可执行文件或者其他形式的输出文件(如库文件、文档等)。Make 可以自动化地执行编译、链接等一系列操作。 规则 makefile文件

康拓展开(hash算法中会用到)

康拓展开是一个全排列到一个自然数的双射(也就是某个全排列与某个自然数一一对应) 公式: X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1]*0! 其中,a[i]为整数,并且0<=a[i]<i,1<=i<=n。(a[i]在不同应用中的含义不同); 典型应用: 计算当前排列在所有由小到大全排列中的顺序,也就是说求当前排列是第

【C++ Primer Plus习题】13.4

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream>#include "port.h"int main() {Port p1;Port p2("Abc", "Bcc", 30);std::cout <<

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

C++包装器

包装器 在 C++ 中,“包装器”通常指的是一种设计模式或编程技巧,用于封装其他代码或对象,使其更易于使用、管理或扩展。包装器的概念在编程中非常普遍,可以用于函数、类、库等多个方面。下面是几个常见的 “包装器” 类型: 1. 函数包装器 函数包装器用于封装一个或多个函数,使其接口更统一或更便于调用。例如,std::function 是一个通用的函数包装器,它可以存储任意可调用对象(函数、函数

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

C++11第三弹:lambda表达式 | 新的类功能 | 模板的可变参数

🌈个人主页: 南桥几晴秋 🌈C++专栏: 南桥谈C++ 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据库学习专栏: 南桥谈MySQL 🌈Qt学习专栏: 南桥谈Qt 🌈菜鸡代码练习: 练习随想记录 🌈git学习: 南桥谈Git 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈�

【数据结构】——原来排序算法搞懂这些就行,轻松拿捏

前言:快速排序的实现最重要的是找基准值,下面让我们来了解如何实现找基准值 基准值的注释:在快排的过程中,每一次我们要取一个元素作为枢纽值,以这个数字来将序列划分为两部分。 在此我们采用三数取中法,也就是取左端、中间、右端三个数,然后进行排序,将中间数作为枢纽值。 快速排序实现主框架: //快速排序 void QuickSort(int* arr, int left, int rig