logo资料库

计算机概论A—Coursera—北京大学Online judge习题以及答案.doc

第1页 / 共50页
第2页 / 共50页
第3页 / 共50页
第4页 / 共50页
第5页 / 共50页
第6页 / 共50页
第7页 / 共50页
第8页 / 共50页
资料共50页,剩余部分请下载后查看
第一次在线提交作业 ===== 第 1 题:1:晶晶赴约会 ===== 总时间限制: 1000ms 内存限制: 65536kB 描述 晶晶的朋友贝贝约晶晶下周一起去看展览,但晶晶每周的 1、3、5 有课必须上课,请帮晶晶 判断她能否接受贝贝的邀请,如果能输出 YES;如果不能则输出 NO。 输入 输入有一行,贝贝邀请晶晶去看展览的日期,用数字 1 到 7 表示从星期一到星期日。 输出 输出有一行,如果晶晶可以接受贝贝的邀请,输出 YES,否则,输出 NO。注意 YES 和 NO 都 是大写字母! 样例输入 2 样例输出 YES Code: #include using namespace std; int main() { int week; cin >> week; if(week == 1 || week == 3 || week == 5) { cout << "NO" <
1000ms 内存限制: 65536kB 描述 计算正整数 m 到 n(包括 m 和 n )之间的所有奇数的和,其中,m 不大于 n,且 n 不 大于 300。例如 m=3, n=12, 其和则为:3+5+7+9+11=35 输入 两个数 m 和 n,两个数以空格间隔,其中 0<=m <= n <= 300 。 输出 奇数之和 样例输入 7 15 样例输出 55 Code: #include using namespace std; int main() { int m, n, total = 0; cin >> m >> n; for(int i = m; i <= n; i++) { if(i % 2 == 1) total += i; } cout << total << endl; return 0; } ===== 第 3 题:3:整数的个数 ===== 总时间限制: 1000ms 内存限制: 65536kB 描述 给定 k(1
输出 输出有三行,第一行为 1 出现的次数,,第二行为 5 出现的次数,第三行为 10 出现的次数。 样例输入 5 1 5 8 10 5 样例输出 1 2 1 Code: #include using namespace std; int main() { int n, num, count1 = 0, count5 = 0, count10 = 0; cin >> n; for(int i = 0; i < n; i++) { cin >> num; if(num == 1) count1++; if(num == 5) count5++; if(num == 10) count10++; } cout << count1 << endl << count5 << endl << count10 << endl; return 0; } ===== 第 4 题:4:1 的个数 ===== 总时间限制: 1000ms 内存限制: 65536kB 描述 给定一个十进制整数 N,求其对应 2 进制数中 1 的个数 输入 第一个整数表示有 N 组测试数据,其后 N 行是对应的测试数据,每行为一个整数。 输出
N 行,每行输出对应一个输入。 样例输入 4 2 100 1000 66 样例输出 1 3 6 2 Code: #include using namespace std; int main() { int n,i,num,count; cin >> n; for(i = 0; i < n;i++) { cin >> num; count = 0; do { if((num % 2) == 1) count++; num /= 2; }while(num != 0); cout << count << endl; } return 0; } ===== 第 5 题:5:数组逆序重放 ===== 总时间限制: 1000ms 内存限制: 65536kB 描述 将一个数组中的值按逆序重新存放。例如,原来的顺序为 8,6,5,4,1。要求改为 1,4,5,6,8。
输入 输入为两行:第一行数组中元素的个数 n(1 using namespace std; int main() { int n,i,temp,array[100]; cin >> n; for(i = 0; i < n; i++) { cin >> array[i]; } for(i = 0; i < n / 2; i++) { temp = array[i]; array[i] = array[n - 1 - i]; array[n - 1 - i] = temp; } for(i = 0; i < n; i++) cout << array[i] << " "; cout << endl; return 0; } 第二次在线提交作业 ===== 第 1 题:苹果和虫子 ===== 总时间限制: 1000ms 内存限制: 65536kB 描述 你买了一箱 n 个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每 x 小时能吃掉一个 苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过 y 小时你还有多少个完整的苹
果? 输入 输入仅一行,包括 n,x 和 y(均为整数)。 输出 输出也仅一行,剩下的苹果个数 样例输入 10 4 9 样例输出 7 提示 注意:是要求完整的苹果数。 Code: #include using namespace std; int main() { int n, x, y; cin >> n >> x >>y; if(y % x == 0) { if(n > y / x) cout << n - y / x << endl; else cout << 0 < (y / x + 1)) cout << n - (y / x + 1) << endl; else cout << 0 <
小圆桶(h 和 r 都是整数)。问大象至少要喝多少桶水才会解渴。(设 PAI=3.14159) 输入 输入有一行:分别表示小圆桶的深 h,和底面半径 r,单位都是厘米。 输出 输出也只有一行,大象至少要喝水的桶数。 样例输入 23 11 样例输出 3 Code: #include using namespace std; #define PI 3.14159 #define SUM 20000 int main() { int h, r, n; double total; cin >> h >> r; total = PI * r * r * h; n = SUM / total; if( n < SUM / total) { cout << n + 1 << endl; } else { cout << n << endl; } return 0; } ===== 第 3 题:最高的分数 ===== 总时间限制: 1000ms 内存限制: 65536kB 描述 孙老师 讲授的《计算概论》这门课期中考试刚刚结束,他想知道考试中取得的最高分数。 因为人数比较多,他觉得这件事情交给计算机来做比较方便。你能帮孙老师解决这个问题 吗? 输入
输入为二行,第一行为整数 n(1 <= n < 100),表示参加这次考试的人数.第二行是这 n 个学生 的成绩 输出 输出一行,即最高的成绩 样例输入 5 85 78 90 99 60 样例输出 99 提示 不用数组和使用数组均可实现 Code: #include using namespace std; int main() { int i, n, x, temp; cin >> n; cin >> temp; for(i = 0; i < n - 1; i++) { cin >> x; if(temp < x) { temp = x; } } cout << temp << endl; return 0; } ===== 第 4 题:4:最大奇数与最小偶数之差的绝对值 ===== 总时间限制: 1000ms 内存限制: 65536kB 描述 输入 6 个正整数,且这 6 个正整数中至少存在一个奇数和一个偶数。 设这 6 个正整数中最大的奇数为 a,最小的偶数为 b,求出|a-b|的值 输入 输入为一行,6 个正整数,且 6 个正整数都小于 100 输入保证这 6 个数中至少存在一个奇数和一个偶数
分享到:
收藏