牛客竞赛语法入门班选择结构习题(重现赛)(A-L)

本篇包含:

1、A-比大小

2、B-卡拉兹函数

3、C-默契

4、D-整除判断

5、E-CSimplemathproblem

6、F-吃瓜群众

7、G-jyq跳格子

8、H-小名的回答

9、I-牛妹数

10、J-判断闰年

11、K-统计数据正负个数

12、L-小乐乐是否被叫家长

本篇包含考点:

1、取模操作

2、闰年的判断


A-比大小

参考代码:

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

 解析:

按照题目要求,进行简单的判断输出,这里先判断任意一种情况都可行


 B-卡拉兹函数

 参考代码:

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

 解析:

按照题目要求,进行简单的判断输出

偶数的判断条件为 n%2==0

奇数的判断条件为 n%2==1


 C-默契

  参考代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
	int a,b;
	cin>>a>>b;
	if(a==b) cout<<"Tacit!";
	else cout<<"No Tacit!";
	return 0;
}

 解析:

按照题目的要求,进行简单的判断输出

两个数字相等表示为:a==b

当然因为数据范围不大,读者朋友们甚至可以一个判断写一个 if 语句


 D-整除判断

 参考代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
	long long m,n;
	cin>>m>>n;
	if(m%n==0) cout<<"YES";
	else cout<<"NO";
	return 0;
}

 解析:

数据范围要注意用 long long,否则会爆 int

按照题目要求进行简单的判断输出

m能被n整除表示为:m%n==0


 E-CSimplemathproblem

  参考代码:

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

 解析:

数据范围要注意用 long long,否则会爆 int

按照题目要求进行简单的判断输出

x 是 y 的因数其实是,y 能被 x 整除的另一种表述方式,

同样的,我们表示为:y%x==0


 F-吃瓜群众

 参考代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n;
	cin>>n;
	int x,y;
	int flag=0;
	for(int i=1;i<n;i++){
		x=i;
		y=n-i;
		if((x%2==0)&&(y%2==0)) flag=1;
	}
	if(flag==1) cout<<"YES, you can divide the watermelon into two even parts.";
	else cout<<"NO, you can't divide the watermelon into two even parts.";
}

 解析:

题目的意思为:如果 n 分为的两个数均为偶数则符合题意

所以我们遍历所有将 n 分为两部分的数,如果满足两部分都为偶数,则输出 yes 结果,否则输出 no 结果


 G-jyq跳格子

 参考代码:

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

 解析:

在这道题中,跳四格和跳两格都是一样的,我们只需要每次判断跳两格的情况即可

因为是从编号为1的格子开始跳,所以我们开始时便把n-1


 H-小名的回答

  参考代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
	int a,b,n;
	cin>>a>>b>>n;
	int wei=a+b;
	if(n<wei) cout<<"NO";
	else{
		n=n-wei;
		if(n%2==0) cout<<"YES";
		else cout<<"NO";
	}
}

 解析:

我们很容易对这道题的答案进行划分

1.如果走的步数小于实际步数,则为说谎

2.如果走的步数大于实际步数,但为奇数,则为说谎


 I-牛妹数

  参考代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n;
	cin>>n;
	if((n%2==0)&&(n>50)) cout<<"yes";
	else cout<<"no";
}

 解析:

按照题目要求,进行简单的判断输出

可以在一个 if 条件中,把两个判断条件都写上;也可以分为两个 if 条件写


 J-判断闰年

   参考代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n;
	cin>>n;
	if((n%400==0)||((n%4==0)&&(n%100!=0))) cout<<"yes";
	else cout<<"no";
}

 解析:

闰年的判断有以下两点:

1.能被4整除、但不能被100整除

2.能被400整除

满足任意一点的,即为闰年

拓展:其它的都是平年,闰年的特点:2月有29天


 K-统计数据正负个数

  参考代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
	long long n;
	int x=0,y=0;
	for(int i=0;i<10;i++){
		cin>>n;
		if(n<0) x++;
		else if(n>0) y++;
	}
	printf("positive:%d\n",y);
	printf("negative:%d\n",x);
}

 解析:

注意数据要开 long long,否则会爆 int 

其次要注意在判断时不要包括到0,正数和负数都是不包括0的


 L-小乐乐是否被叫家长

  参考代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n;
	int sum=0;
	for(int i=0;i<3;i++){
		cin>>n;
		sum+=n;
	}
	sum=sum/3;
	if(sum>=60) cout<<"NO";
	else cout<<"YES";
}

 解析:

按照题目要求,进行简单的判断输出

这道题的代码多种多样,读者朋友们可以多多尝试


如果大家有不懂的,或者文章有何不正,都欢迎评论留言进行讨论或者私信作者    

上一篇:操作系统中timdatectl命令显示中的RTC时间 为什么比hwclock命令显示的硬件时钟时间早八小时


下一篇:React Native 应用打包