编程题#1:苹果和虫子
来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)
注意: 总时间限制: 1000ms 内存限制: 65536kB
描述
你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果?
输入
输入仅一行,包括n,x和y(均为整数)。
输出
输出也仅一行,剩下的苹果个数
#include <iostream>
using namespace std;
int main() {
int n,x,y,m;
cin >> n >> x >> y;
if (n - (y / x) > 0) {
if (y%x == 0)
{
m = n - (y / x);
}
else if(y%x> 0 ){
m = n - (y / x + 1);
}
cout << m << endl;
}
if (n - (y / x) <= 0) {
cout << "0" << endl;
}
return 0;
}
编程题#2:大象喝水
来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)
注意: 总时间限制: 1000ms 内存限制: 65536kB
描述
一只大象口渴了,要喝20升水才能解渴,但现在只有一个深h厘米,底面半径为r厘米的小圆桶(h和r都是整数)。问大象至少要喝多少桶水才会解渴。
输入
输入有一行:包行两个整数,以一个空格分开,分别表示小圆桶的深h和底面半径r,单位都是厘米。
输出
输出一行,包含一个整数,表示大象至少要喝水的桶数。
#include <iostream>
using namespace std;
#define Pi 3.14159
int main() {
int h, r,n;
double V = 20000;
cin >> h >> r;
double v = Pi*r*r*h;
n = (V / v) + 1;
cout << n<< endl;
return 0;
}
编程题#3:最高的分数
来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)
注意: 总时间限制: 1000ms 内存限制: 65536kB
描述
孙老师讲授的《计算概论》这门课期中考试刚刚结束,他想知道考试中取得的最高分数。因为人数比较多,他觉得这件事情交给计算机来做比较方便。你能帮孙老师解决这个问题吗?
输入
输入两行,第一行为整数n(1 <= n < 100),表示参加这次考试的人数.第二行是这n个学生的成绩,相邻两个数之间用单个空格隔开。所有成绩均为0到100之间的整数。
输出
输出一个整数,即最高的成绩。
#include <iostream>
using namespace std;
int main() {
int n,m,r,a[20],max=0;
cin >> n;
for (int i = 0; i < n; ++i) {
cin >> m;
a[i]= m;
if (a[i] >max) {
max = a[i];
}
}
cout << max << endl;
return 0;
}
编程题#4:最大奇数与最小偶数之差的绝对值
来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)
注意: 总时间限制: 1000ms 内存限制: 65536kB
描述
输入6个正整数,且这6个正整数中至少存在一个奇数和一个偶数。
设这6个正整数中最大的奇数为a,最小的偶数为b,求出|a-b|的值
输入
输入为一行,6个正整数,且6个正整数都小于100
输入保证这6个数中至少存在一个奇数和一个偶数
输出
输出为一行,输出最大的奇数与最小的偶数之差的绝对值
#include <iostream>
using namespace std;
int main() {
int all[6],a[6], b[6];
for (int i = 0; i < 6; ++i) {
cin >> all[i];
}
int numOdd = 0;
int numEven = 0;
for (int j = 0; j < 6; ++j) {
if (all[j] % 2 != 0) {
a[numOdd] = all[j];
numOdd++;
}
else {
b[numEven] = all[j];
numEven++;
}
}
int max = 0, min = 100;
for (int k = 0; k < numOdd; ++k) {
if (a[k] >max) {
max = a[k];
}
}
for (int k = 0; k < numEven ; ++k) {
if (b[k]<min) {
min = b[k];
}
}
if (max > min) {
cout << max - min << endl;
}
else {
cout << min-max << endl;
}
return 0;
}
编程题#5:分离整数的各个数位
来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)
注意: 总时间限制: 1000ms 内存限制: 65536kB
描述
从键盘输入一个任意的三位整数,要求正确地分离出它的百位、十位和个位数,并分别在屏幕上输出,输出采用每行输出一个数的方式,不带其它符号。
输入
一个任意的三位整数
输出
一个任意的三位整数
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
if (n / 100 > 0) {
cout << n / 100 << endl;
}
int m = n % 100;
if ( m/10 > 0) {
cout << m/10 << endl;
}
else {
cout << "0" << endl;
}
int k = m % 10;
if (k > 0) {
cout << k << endl;
}
else {
cout << "0" << endl;
}
return 0;
}