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

这篇博客介绍了多个C++算法竞赛题目,涵盖了奇偶性判断、变量交换、逻辑运算符的使用、逻辑运算优先级、美丽数与优美数的概念以及行李托运费用计算等知识点。通过具体题目解析,详细讲解了如何运用if-else语句、逻辑运算符解决实际问题,并提供了AC代码示例。
摘要由CSDN通过智能技术生成

目录

Problem 3536 判断奇偶性

一 题目内容

二 新知识点

三 思路

四 AC代码

Problem 1112 交换变量

一 题目内容

二 新知识点

2.1 swap(a,b)的用法

三 思路

四 AC代码

Problem 8050 逻辑运算运用1

一 题目内容

二 新知识点

2.1 逻辑运算符——与、或、非

2.2 逻辑运算的优先级

三 思路

四 AC代码

Problem 3539 美丽数

一 题目内容

二 新知识点

三 思路

四 AC代码

Problem 3540 优美数

一 题目内容

二 新知识点

三 思路

四 AC代码

Problem 8051 逻辑运算运用2

一 题目内容

二 新知识点

三 思路

四 AC代码

Problem 8054 逻辑运算运用5

一 题目内容

二 新知识点

三 思路

四 AC代码

Problem 1109 行李托运

一 题目内容

二 新知识点

2.1 if-else if-else语句和if-else if语句

三 思路

四 AC代码

Problem 3538 判断直角三角形

一 题目内容

二 新知识点

2.1 勾股定理的逆定理

三 思路

四 AC代码

Problem 1175 分西瓜

一 题目内容

二 新知识点

三 思路

四 AC代码

Problem 3536 判断奇偶性

一 题目内容

时间:0.2s    空间:32M

题目描述:

判断一个整数n是奇数还是偶数,如果是奇数,输出"odd", 如果是偶数输出"even"

输入格式:

输入一个整数n

输出格式:

输出格式见题目描述

样例输入1:

2

样例输出1:

even

样例输入2:

1

样例输出2:

odd

约定:

1 \leq n \leq 100

二 新知识点

本题没有新知识点。

三 思路

根据偶数的定义,能被2整除的数是偶数,否则就是奇数。明确这点后可使用if-else语句进行判断并输出结果。

四 AC代码

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;
    cin>>n;
    if(n%2==1){
        cout<<"odd";
    }else{
        cout<<"even";
    }
    return 0;
}

Problem 1112 交换变量

一 题目内容

时间:1s   空间:256M

题目描述:

随意输入两个数XY,通过交换将大的数放在X中,小的数放在Y中。

输入格式:

输入一行,包含两个整数X,Y

输出格式:

输出两行,每行一个整数,输出交换后的X, Y

样例输入:

4 5

样例输出:

5
4

二 新知识点

2.1 swap(a,b)的用法

对于两个数(int,double等类型),可以通过swap(a,b)交换这两个数。比如:

int a=1,b=2;
swap(a,b);
cout<<a<<" "<<b;

输出结果如下:

2 1

三 思路

用if语句判断X是否小于Y,如果是,就交换两数。

四 AC代码

#include<bits/stdc++.h>
using namespace std;
int main(){
    int x,y;
    cin>>x>>y;
    if(x<y){
        swap(x,y);
    }
    cout<<x<<endl<<y;
    return 0;
}

Problem 8050 逻辑运算运用1

一 题目内容

时间:0.2s     空间:32M

题目描述:

输入三个数a,b,c,如果a>b>c,输出YES,不然输出NO

输入格式:

输入三个整数a,b,c

输出格式:

输出格式见题目描述

样例输入1:

4 3 2

样例输出1:

YES

样例输入2:

1 3 2

样例输出2:

NO

约定:

0 \leq a,b,c \leq 1000

二 新知识点

2.1 逻辑运算符——与、或、非

对于两个bool类型的变量,我们有时会想要判断他们是否都成立。这时,就需要用到逻辑运算符之一——与运算。与运算格式如下:

a&&b

只有当a和b都为true时,a&&b的结果才为true,否则为false。

同样地,要判断a和b中是否至少有一个成立,我们要用到或运算,格式如下:

a||b

 这时,只要a和b有一个为true,a||b的结果就为true;当a和b都为false时,a||b才为false。

 若要判断a是否不成立,需要用到非运算,格式如下:

!a

 a为true时,!a为false;a为false时,!a为true。

逻辑运算符一般不单独使用,而是与if语句配合使用。

2.2 逻辑运算的优先级

C++中,非运算的优先级最高,与运算次之,或运算最低。为增强代码的可读性,不管逻辑运算是否按照想要的优先级排列,最好都用括号把逻辑运算括起来(换句话说,如果不添这些括号,可能会让别人和自己读起来费劲些)。例如:

你想要先求a&&b,令其为d,再求d||c。则写出代码如下:

a&&b||c

由于与运算的优先级比或运

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值