编程题#1:苹果和虫子
来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)
注意: 总时间限制: 1000ms 内存限制: 65536kB
描述
你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果?
输入
输入仅一行,包括n,x和y(均为整数)。
输出
输出也仅一行,剩下的苹果个数
提示
注意:是要求完整的苹果数。
#include
using namespace std;
int n, x, y;
int main() {
cin >> n >> x >> y;
if (y / x >= n) {
cout << 0 << endl;
}
else {
if (y % x == 0) {
cout << n - y / x << endl;
}
else {//若不能整除,则多减去一个。
cout << n - y / x - 1 << endl;
}
}
return 0;
}
编程题#3:最高的分数
来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)
注意: 总时间限制: 1000ms 内存限制: 65536kB
描述
孙老师讲授的《计算概论》这门课期中考试刚刚结束,他想知道考试中取得的最高分数。因为人数比较多,他觉得这件事情交给计算机来做比较方便。你能帮孙老师解决这个问题吗?
输入
输入两行,第一行为整数n(1 <= n < 100),表示参加这次考试的人数.第二行是这n个学生的成绩,相邻两个数之间用单个空格隔开。所有成绩均为0到100之间的整数。
输出
输出一个整数,即最高的成绩。
#include
using namespace std;
int n;
int score[100];
int main() {
cin >> n;
for (int i = 0; i < n; i++) {
cin >> score[i];
}
for (int i = 0; i < n; i++) {//冒泡略麻烦,可以直接比较大小替换max
for (int j = 0; j < n - i - 1; j++) {
if (score[j + 1] > score[j]) {
int tmp = score[j];
score[j] = score[j + 1];
score[j + 1] = tmp;
}
}
}
cout << n << "个人中最高分为:" << score[0] << endl;
}
编程题#4:最大奇数与最小偶数之差的绝对值
来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)
注意: 总时间限制: 1000ms 内存限制: 65536kB
描述
输入6个正整数,且这6个正整数中至少存在一个奇数和一个偶数。
设这6个正整数中最大的奇数为a,最小的偶数为b,求出|a-b|的值
输入
输入为一行,6个正整数,且6个正整数都小于100
输入保证这6个数中至少存在一个奇数和一个偶数
输出
输出为一行,输出最大的奇数与最小的偶数之差的绝对值
思路:1. 不分奇偶直接冒泡降序排序
2. 找出第一个奇数和最后一个偶数,求差
#include
using namespace std;
int main() {
int f[6];
for (int i = 0; i < 6; i++) {
cin >> f[i];
}
for (int i = 0; i < 6; i++) {
for (int j = 0; j < 6 - i - 1; j++) {
if (f[j + 1] > f[j]) {
int tmp = f[j];
f[j] = f[j + 1];
f[j + 1] = tmp;
}
}
}
int a = 0;
for (int i = 0; i < 6; i++) {
if (f[i] % 2 != 0) {
a = f[i];
break;
}
}
int b = 0;
for (int j = 5; j >= 0; j--) {
if (f[j] % 2 == 0){
b = f[j];
break;
}
}
if(a-b > 0)
cout << a - b << endl;
else
cout << b - a << endl;
}
编程题#5:分离整数的各个数位
来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)
注意: 总时间限制: 1000ms 内存限制: 65536kB
描述
从键盘输入一个任意的三位整数,要求正确地分离出它的百位、十位和个位数,并分别在屏幕上输出,输出采用每行输出一个数的方式,不带其它符号。
输入
一个任意的三位整数
输出
一个任意的三位整数
#include
using namespace std;
int main() {
int n;
cin >> n;
int a = n / 100;
int b = (n - 100 * a) / 10;
int c = n - 100 * a - 10 * b;
cout << "百位为:" << a << "\n" << "十位为:" << b << "\n" << "个位为:" << c << endl;
}