1. 判断是否相邻
题目链接:http://csp.magu.ltd/problem/J0309
【问题描述】
编写程序,输入三个整数a、b、c,判断这三个整数是否相邻,如果相邻输出“yes”,否则输出“no”。
【题解代码】
#include <iostream>
using namespace std;
int main()
{
int a, b, c;
cin >> a >> b >> c;
if (a > b) swap(a, b);
if (b > c) swap(b, c);
if (a > b) swap(a, b);
if (a+1 == b && b+1 == c) cout << "yes";
else cout << "no";
return 0;
}
2.求学生成绩等级
题目链接:http://csp.magu.ltd/problem/J0310
【问题描述】
编写程序,输入一个学生的语文、数学、英语、编程4门课的成绩,计算并输出该生分别获A、B、C等级的课程门数,等级划分规则如下。
- 如果成绩在90分到100分之间(包括90分和100分),等级为A;
- 如果成绩在60分到89分之间(包括60分和89分),等级为B;
- 如果成绩不足60分,等级为C;
【题解代码】
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
if (n >= 90 && n <= 100)
{
cout << "A";
}
if (n >= 60 && n <= 89)
{
cout << "B";
}
if (n < 60)
{
cout << "C";
}
return 0;
}
3.长方形判断
题目链接:http://csp.magu.ltd/problem/J0311
【问题描述】
编写程序,输入四个正整数a、b、c、d,分别表示四根木棍的长度,判断这四根木棍是否能组成长方形,如果能组成长方形,则输出“yes”,否则输出“no”。
【题解代码】
#include <iostream>
using namespace std;
int main()
{
int a, b, c, d;
cin >> a >> b >> c >> d;
bool f = 0;
if(a == b && c == d) f = 1;
else if(a == c && b == d) f = 1;
else if(a == d && b == c) f = 1;
else f = 0;
if (f) cout << "yes";
else cout << "no";
return 0;
}
4.直角三角形判断
题目链接:http://csp.magu.ltd/problem/J0312
【问题描述】
编写程序,输入三个正整数,分别表示三条线段的长度,判断能否以这三条线段为边组成一个直角三角形。如果能组成直角三角形,则输出“yes”,否则输出“no”。
【题解代码】
#include <iostream>
using namespace std;
int main()
{
int a, b, c;
cin >> a >> b >> c;
if(a > b) swap(a, b);
if(b > c) swap(b, c);
if(a > b) swap(a, b);
if(a*a + b*b == c*c) {
cout << "yes";
}
else cout << "no";
return 0;
}
5.苹果和虫子
题目链接:http://csp.magu.ltd/problem/J0313
【问题描述】
小明买了一箱苹果,总共有n个,很不幸的是箱子里混进了一条虫子。虫子每x小时能吃掉一个苹果,假设虫子在吃完某一个苹果之前不会吃另一个,编程计算经过y小时小明还有多少个完整的苹果?
【题解代码】
#include <iostream>
using namespace std;
int main()
{
int n, x, y;
cin >> n >> x >> y;
int ans = n - y / x - (y % x != 0);
if (ans < 0) ans = 0;
cout << ans;
return 0;
}
6.骑车与走路
题目链接:http://csp.magu.ltd/problem/J0314
【问题描述】
如果没有自行车,在大学校园里上课、办事会很不方便。但实际上,并非去办任何事情都是骑自行车快,因为骑自行车总要找车、开锁、停车、锁车等,这要耽误一些时间。假设找到自行车,开锁并骑上自行车的时间为27秒;停车、锁车的时间为23秒。步行每秒行走1.2米,骑自行车每秒行走3.0米。编写程序,要去有一定距离的地方办事,判断是骑自行车快还是走路快。
【题解代码】
#include <iostream>
using namespace std;
int main()
{
int x;
cin >> x;
double b = 50 + x/3.0;
double w = x / 1.2;
if (b == w) cout << "All";
else if (b < w) cout << "Bike";
else cout << "Walk";
return 0;
}
7.判断能否被3、5、7整除
题目链接:http://csp.magu.ltd/problem/J0315
【问题描述】
编写程序,输入一个整数n,判断它能否被3,5,7整除,并输出以下信息:
- 如果能同时被3,5,7整除(直接输出3 5 7,各个数中间留一个空格);
- 如果只能被3、5、7中的两个数整除,则输出两个数,小的在前,大的在后,例如:3 5或者 3 7或者5 7,中间用一个空格分隔;
- 如果只能被3、5、7中的一个数整除,则输出这个除数;
- 如果不能被3、5、7中的任何数整除,输出小写字符“n”;
【题解代码】
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
bool f = false;
if (n % 3 == 0)
{
cout << "3 ";
f = 1;
}
if (n % 5 == 0)
{
cout << "5 ";
f = 1;
}
if (n % 7 == 0)
{
cout << "7";
f = 1;
}
if (f == 0)
cout << "n";
return 0;
}
8.输出星期几
题目链接:http://csp.magu.ltd/problem/J0316
【问题描述】
编写程序,输入一个正整数n ( 1 ⩽ (1\leqslant (1⩽n ⩽ 9 ) \leqslant9) ⩽9),输出其对应的星期几的英语单词。其中,1~7分别对应“Monday” “Tuesday” “Wednesday” “Thursday” “Friday” “Saturday” “Sunday”,如果不是1~7之间的数,输出“invalid”。
【题解代码】
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
switch (n)
{
case 1:cout<<"Monday";break;
case 2:cout<<"Tuesday";break;
case 3:cout<<"Wednesday";break;
case 4:cout<<"Thursday";break;
case 5:cout<<"Friday";break;
case 6:cout<<"Saturday";break;
case 7:cout<<"Sunday";break;
default:cout<<"invalid";
}
return 0;
}
9.输出某年某月的天数
题目链接:http://csp.magu.ltd/problem/J0317
【问题描述】
编写程序,输入年份year和月份month,计算并输出该年该月的天数。
提示:
1.每年的1、3、5、7、8、10、12月有31天;
2.每年的4、6、9、11月有30天;
3.闰年的2月有29天,非闰年的2月有28天;
【题解代码】
#include <iostream>
using namespace std;
int main()
{
int y, m;
cin >> y >> m;
if (m == 2)
{
if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0)
cout << 29;
else
cout << 28;
}
else if (m == 4 || m == 6 || m == 9 || m == 11)
{
cout << 30;
}
else
cout << 31;
return 0;
}
10.买铅笔(NOIP2016 普及组)
题目链接:http://csp.magu.ltd/problem/J0318
【问题描述】
老师需要去商店买n支铅笔作为小朋友们参加NOIP的礼物。老师发现商店一共有三种包装的铅笔,不同包装内的铅笔数量有可能不同,价格也有可能不同。为了公平起见,老师决定只买同一种包装的铅笔。
商店不允许将铅笔的包装拆开,因此老师可能需要购买超过n支铅笔才够给小朋友们发礼物。
现在老师想知道,在商店每种包装的数量都足够的情况下,要买够至少n支铅笔最少需要花费多少钱。
【题解代码】
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int n;
cin >> n;
int m, p;
cin >> m >> p;
int minn = ceil(n*1.0/m) * p;
cin >> m >> p;
int sum = ceil(n*1.0/m) * p;
if (sum < minn)
minn = sum;
cin >> m >> p;
sum = ceil(n*1.0/m) * p;
if (sum < minn)
minn = sum;
cout << minn;
return 0;
}