时间限制 : 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;
}
分析:这道题放在这里主要就是让大家知道什么是水仙花数。
是否通过:
输入
输入仅一行,包括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。在编程的时候要多考虑值很大的情况。
是否通过:
时间限制 : 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。
是否通过:
时间限制 : 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整除是闰年
是否通过:
时间限制 : 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、任意两边之差小于第三边
是否通过: