OJ系统刷题 第四篇

12206 - 判断水仙花数

时间限制 : 1 秒

内存限制 : 128 MB

输入一个三位数n,判断它是否为水仙花数,如果是则输出Yes,不是则输出No。水仙花数:是指一个3位数,它的每个位上的数字的3次幂之和等于它本身。(例如:1³+5³+3³=153)

输入

输入一个三位数n(整数)

输出

Yes/No

样例

输入

153

输出

Yes

 答案:

#include
#include
int main() {
	int n;
	scanf("%d", &n);
	int N = n;
	int sum = 0;
	int r = 0;
	while (n) {
		r = n % 10;
		sum = sum + (int)pow(r, 3);
		n /= 10;
	}
	if (N == sum) {
		printf("Yes\n");
	}
	else {
		printf("No\n");
	}
	return 0;
}

分析:这道题放在这里主要就是让大家知道什么是水仙花数。

是否通过:

12209 - 苹果和虫子2

输入

输入仅一行,包括n,x和y(均为整数)。

输出

输出也仅一行,剩下的苹果个数

样例

输入

10 4 9

输出

7

 答案:

#include
int main() {
	int n, x, y;
	scanf("%d%d%d", &n, &x, &y);
	int flag = y % x;
	int rest = 0;
	if (flag == 0) {
		rest = n - y / x;
	}
	else {
		rest = n - y / x - 1;
	}


	if (rest < 0) {
		rest = 0;
	}
	printf("%d\n", rest);
	return 0;
}

分析:这道题有个坑,当y值很大时,苹果剩余的数量就会为负数,这显然是不合理的,因此在最后还得对rest进行判断,如果小于0,得重新复制0。在编程的时候要多考虑值很大的情况。

是否通过:

12212 - 肥胖问题

时间限制 : 1 秒

内存限制 : 128 MB

BMI 指数是国际上常用的衡量人体胖瘦程度的一个标准,其算法是m/h^2(40≤m≤120,1.4≤h≤2.0)m/h2(40≤m≤120,1.4≤h≤2.0),其中m 是指体重(千克),h是指身高(米)。不同体型范围与判定结果如下:

小于 18.5:体重过轻,输出Underweight;

大于等于 18.5 且小于 24:正常体重,输出 Normal;

大于等于 24:肥胖,不仅要输出 BMI 值(使用 cout 的默认精度),然后换行,还要输出 Overweight;

现在给出体重和身高数据,需要根据 BMI 指数判断体型状态并输出对应的判断。

对于非 C++ 语言,在输出时,请四舍五入保留六位有效数字输出,如果小数部分存在后缀0,不要输出后缀0。

请注意,保留六位有效数字不是保留六位小数。例如114.5149应该输出为114.515,9198.10应该输出为9198.1。

输入

输入m h 整数m和浮点数h,分别表示体重和身高

输出

按题意要求输出内容

样例

输入

70 1.72

输出

Normal

 答案:

#include
int main() {
	double m, h;
	scanf("%lf %lf", &m, &h);
	double k = m / h / h;
	if (k < 18.5) {
		printf("Underweight\n");
	}
	else if (k >= 18.5 && k < 24) {
		printf("Normal\n");
	}
	else {
		printf("%.6lg\nOverweight\n", k);
	}
}

分析:这道题最难的就是打印有效数字位,之前都是打印多少位小数位,但这里是打印有效数字位。不一样的。在C语言中,打印有效数字位是%g。

是否通过:

OJ系统刷题 第四篇_第1张图片

12214 - 判断闰年

时间限制 : 1 秒

内存限制 : 128 MB

输入一个年份x(x为整数),判断是否为闰年。如果是则输出Yes,否则输出No。

输入

x (x为整数)

输出

Yes/No

样例

输入

2000

输出

Yes

 答案:

#include
int main() {
	int year;
	scanf("%d", &year);
	if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {
		printf("Yes\n");
	}
	else {
		printf("No\n");
	}
	return 0;
}

分析:判断闰年的有两个条件(这个是默认大家应该要知道的,是常识,希望从这个题知道什么是闰年)

1、被400整除是闰年

2、被4整除但不能被100整除是闰年

是否通过:

OJ系统刷题 第四篇_第2张图片

12311 - 识别三角形

时间限制 : 1 秒

内存限制 : 128 MB

输入三个正整数,判断能否构成三角形的三边,如果不能,输出“NO”。如果能构成三角形,判断构成什么三角形?按等边、直角、一般三角形分类,依次输出对应的三角形类型“Equilateral”、“Right”、“General”。

输入

输入一行三个用空格隔开的正整数a,b,c,表示三角形的三条边长。(1<=a,b,c<=1000)

输出

输出对应三角形的类型,如果不能构成三角形,输出“NO”,如果是等边三角形输出“Equilateral”,如果是直角三角形输出“Right”,其他三角形则输出“General”。

样例

输入

3 4 5

输出

Right

答案:

#include
#include
int main(void) {
	int a, b, c;
	scanf("%d%d%d", &a, &b, &c);
	if ((a + b > c && a - b < c) && (a + c > b && a - c < b) && (b + c > a && b - c < a)) {
		if (a == b && b == c) {
			printf("Equilateral\n");
		}
		else if (a * a + b * b == c * c || a * a + c * c == b * b || b * b + c * c == a * a) {
			printf("Right\n");
		}
		else {
			printf("General\n");
		}
	}
	else {
		printf("NO\n");
	}
	return 0;
}

 分析:判断三个数是否能构成三角形,要注意有两点规则

1、任意两边之和大于第三边

2、任意两边之差小于第三边

是否通过:

OJ系统刷题 第四篇_第3张图片

 

你可能感兴趣的:(OJ系统刷题,蓝桥杯,职场和发展)