目录
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
题目描述:
判断一个整数是奇数还是偶数,如果是奇数,输出"odd", 如果是偶数输出"even"
输入格式:
输入一个整数
输出格式:
输出格式见题目描述
样例输入1:
2
样例输出1:
even
样例输入2:
1
样例输出2:
odd
约定:
二 新知识点
本题没有新知识点。
三 思路
根据偶数的定义,能被2整除的数是偶数,否则就是奇数。明确这点后可使用if-else语句进行判断并输出结果。
四 AC代码
#include
using namespace std;
int main(){
int n;
cin>>n;
if(n%2==1){
cout<<"odd";
}else{
cout<<"even";
}
return 0;
}
Problem 1112 交换变量
一 题目内容
时间:1s 空间:256M
题目描述:
随意输入两个数,,通过交换将大的数放在中,小的数放在中。
输入格式:
输入一行,包含两个整数,
输出格式:
输出两行,每行一个整数,输出交换后的,
样例输入:
4 5
样例输出:
5 4二 新知识点
2.1 swap(a,b)的用法
对于两个数(int,double等类型),可以通过swap(a,b)交换这两个数。比如:
int a=1,b=2; swap(a,b); cout<
输出结果如下:
2 1三 思路
用if语句判断是否小于,如果是,就交换两数。
四 AC代码#includeusing namespace std; int main(){ int x,y; cin>>x>>y; if(x Problem 8050 逻辑运算运用1 一 题目内容
时间:0.2s 空间:32M
题目描述:
输入三个数,如果b>c" src="https://latex.codecogs.com/gif.latex?a%3Eb%3Ec" />,输出YES,不然输出NO
输入格式:
输入三个整数
输出格式:
输出格式见题目描述
样例输入1:
4 3 2样例输出1:
YES样例输入2:
1 3 2样例输出2:
NO约定:
二 新知识点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是否不成立,需要用到非运算,格式如下:
!aa为true时,!a为false;a为false时,!a为true。
逻辑运算符一般不单独使用,而是与if语句配合使用。
2.2 逻辑运算的优先级
C++中,非运算的优先级最高,与运算次之,或运算最低。为增强代码的可读性,不管逻辑运算是否按照想要的优先级排列,最好都用括号把逻辑运算括起来(换句话说,如果不添这些括号,可能会让别人和自己读起来费劲些)。例如:
你想要先求a&&b,令其为d,再求d||c。则写出代码如下:
a&&b||c由于与运算的优先级比或运算高,因此该语句会按照预想的情况运行。但为了增加代码可读性,最好添加括号如下:
(a&&b)||c但如果要先求c||a,令其为d,再求d&&b,则代码如下:
c||a&&b显然,a&&b会先被执行,不符合预想情况。则添括号如下:
(c||a)&&b三 思路使用a>b&&b>c即可判断,注意不能直接写a>b>c。
四 AC代码#includeusing namespace std; int main(){ int a,b,c; cin>>a>>b>>c; if(a>b&&b>c){ cout<<"YES"; }else{ cout<<"NO"; } return 0; } Problem 3539 美丽数 一 题目内容
时间:0.2s 空间:32M
题目描述:
如果一个数是一个偶数而且大于50,我们称它为美丽数
给你一个数,判断它是否是美丽数
输入格式:
输入一个整数
输出格式:
如果是美丽数,输出"yes", 否则输出"no"
样例输入1:
50样例输出1:
no样例输入2:
52样例输出2:
yes约定:
二 新知识点本题没有新知识点。
三 思路根据题意判断即可,注意判断偶数的方法是n%2==0。
四 AC代码#includeusing namespace std; int main(){ int n; cin>>n; if(n>50&&n%2==0){ cout<<"yes"; }else{ cout<<"no"; } return 0; } Problem 3540 优美数 一 题目内容
题目描述:
如果一个数是一个偶数或者大于50,我们称它为优美数
输入格式:
输入一个整数
输出格式:
如果是优美数,输出"yes", 否则输出"no"
样例输入1:
50样例输出1:
yes样例输入2:
2样例输出2:
yes约定:
二 新知识点本题没有新知识点。
三 思路用或运算连接与50" src="https://latex.codecogs.com/gif.latex?n%3E50" />,再加以判断即可。
四 AC代码#includeusing namespace std; int main(){ int n; cin>>n; if(n%2==0||n>50){ cout<<"yes"; }else{ cout<<"no"; } return 0; } Problem 8051 逻辑运算运用2 一 题目内容
时间限制:0.2s 内存限制:32M
【题目描述】当一个数字满足以下两个条件之一时,我们会将其视为“Good数”:
1.数字是5的倍数。
2.数字是3的倍数且数小于等于20。
判断给定的数字是否是一个Good数,并输出“YES”或“NO”。
输入格式
一个整数。
输出格式“YES”或 “NO”(实际输出没有引号)。
样本输入 110
样本输出 1YES
样本输入 2
二 新知识点
21
样本输出 2
NO
约束本题没有新知识点。
三 思路这题的逻辑运算其实不难,但有一个小坑点:
当一个数字满足以下两个条件之一时,我们会将其视为“Good数”
这跟或运算不同。在这道题中,同时满足两个条件的数是不被算作Good数的。所以,为了符合题目要求,我们使用两个bool类型变量a1和a2分别表示该数是否满足两个条件,用语句
(!a1&&a2)||(a1&&!a2)判断即可。
四 AC代码#includeusing namespace std; int main(){ bool a1=false,a2=false; //是否满足两个条件 int n; cin>>n; if(n%5==0){ a1=true; } if(n%3==0&&n<=20){ a2=true; } if((!a1&&a2)||(a1&&!a2)){ cout<<"YES"; }else{ cout<<"NO"; } return 0; } Problem 8054 逻辑运算运用5 一 题目内容
时间:0.2s 空间:32M
题目描述:
给定3个数a,b,c,若存在两个数之和大于第三个数的三倍,输出YES,不然输出NO
输入格式:
三个整数a,b,c
输出格式:
输出格式见题目描述
样例输入1:
3 4 5
样例输出1:
NO
样例输入2:
3 4 6
样例输出2:
YES
约定:
二 新知识点本题没有新知识点。
三 思路依题意,用以下代码判断即可:
a+b>3*c||b+c>3*a||a+c>3*b四 AC代码#includeusing namespace std; int main(){ int a,b,c; cin>>a>>b>>c; if(a+b>3*c||b+c>3*a||a+c>3*b){ cout<<"YES"; }else{ cout<<"NO"; } return 0; } Problem 1109 行李托运 一 题目内容
时间:1s 空间:256M
题目描述:
计算行李的托运费用:如果行李重量不超过30kg,每公斤0.2元;如果行李重量大于30kg,但是不超过60kg,超过30公斤部分按每公斤0.6元算;如果行李重量超过60公斤,不允许行李托运,报告“NO”。在键盘上输入行李重量,屏幕显示行李托运的结果。
输入格式:
一个整数,表示行李重量
输出格式:
输出一行,如果行李可以托运,输出为一个浮点数(结果保留2位小数点);如果行李不可以托运,则输出“NO”
样例输入:
36样例输出:
9.60二 新知识点2.1 if-else if-else语句和if-else if语句
有时我们需要判断的条件比较复杂,仅靠if-else语句无法满足需求,这时就需要if-else if-else或if-else if语句,前者格式如下:
if(条件1){ //语句1 }else if(条件2){ //语句2 }else if(条件3){ //语句3 }else if(条件4){ ... ... ... ... }else{ //语句n }若条件1满足,则语句1执行;否则(当条件1不满足时),若条件2满足,则语句2执行;......若条件1~n-1都不满足,则进入else部分,执行语句n。
当然,也可以略去else语句,格式如下所示:
if(条件1){ //语句1 }else if(条件2){ //语句2 }else if(条件3){ //语句3 }else if(条件4){ ... ... ... }else if(条件n){ //语句n }其执行方式与if-else if-else语句基本相同,只是若条件n也不满足,则直接跳过该语句。
三 思路依题意判断并计算即可,注意浮点数要保留2位小数输出。
四 AC代码#includeusing namespace std; int main(){ int a; cin>>a; if(a>60){ cout<<"NO"; }else if(a>30){ printf("%.2lf",30*0.2+0.6*(a-30)); }else{ printf("%.2lf",0.2*a); } } Problem 3538 判断直角三角形 一 题目内容
时间:0.2s 空间:32M
题目描述:
输入三角形的三条边,判断是否是直角三角形
输入格式:
输入三角形3条边(均为整数)
输出格式:
如果3条边组成的是直角三角形,输出yes否则输出no
样例输入:
3 4 5样例输出:
yes约定:
数据保证
二 新知识点2.1 勾股定理的逆定理
勾股定理的逆定理陈述如下:设的三边满足,则是直角三角形。证明如下:
如图,作使得,,且,则根据勾股定理,。根据,,则。
三 思路直接判断即可,注意a、b、c的顺序不定。
四 AC代码#includeusing namespace std; int main(){ int a,b,c; cin>>a>>b>>c; if(a*a+b*b==c*c||b*b+c*c==a*a||a*a+c*c==b*b){ cout<<"yes"< Problem 1175 分西瓜
注:此题与CF4A(Codeforces上的第4A题)题意相同。
一 题目内容时间:1s 空间:256M
题目描述:
给你一个西瓜的重量,问你能否将这个西瓜分成两部分,每个部分都是偶数。
输入格式:
输入一行,包含一个整数,表示西瓜的重量
输出格式:
输出一行,见样例。
样例输入1:
8样例输出1:
YES, you can divide the watermelon into two even parts.样例输入2:
3样例输出2:
NO, you can't divide the watermelon into two even parts.约定:
提示:
要注意检查你的输出格式要跟样例输出一模一样才能通过,尤其别忘了句子最后的小点哦
二 新知识点本题没有新知识点。
三 思路我们知道偶数+偶数=偶数,因此只要是偶数都是YES,但2除外(因为它只能分解成1+1或0+2,但显然不能分成一份重量为0的部分)。
四 AC代码#includeusing namespace std; int main(){ int a; cin>>a; if(a%2==0&&a!=2){ cout<<"YES, you can divide the watermelon into two even parts." }else{ cout<<"NO, you can't divide the watermelon into two even parts."; } }



