文库 真题 C++真题

202503青少年软件编程(C语言)等级考试(四级)真题试卷

电子学会真题 c语言等级考试 少儿编程 DOCX   8页   下载0   2025-04-12   浏览7   收藏0   点赞0   评分-   5397字   免费文档
温馨提示:当前文档最多只能预览 2 页,若文档总页数超出了 2 页,请下载原文档以浏览全部内容。
202503青少年软件编程(C语言)等级考试(四级)真题试卷 第1页
202503青少年软件编程(C语言)等级考试(四级)真题试卷 第2页
剩余6页未读, 下载浏览全部
青少年软件编程(C语言)等级考试试卷(四级) 1 两枚硬币 伊娃喜欢收集全宇宙的硬币,包括火星币等等。一天她到了一家宇宙商店,这家商店可以接受任何星球的货币,但有一个条件,无论什么价格,都必须用 2 枚硬币一次付清,不能多也不能少。而她有多达 10 5  个硬币,于是求助于你。给定任一价格,请帮她找出可以付款的 2 枚硬币。 时间限制:1000 内存限制:65536 输入 第 1 行给出 2 个正整数:n (≤ 10 5 )为硬币枚数、m(≤ 10 3 )为伊娃要付清的价格; 第 2 行给出 n 枚硬币的面值,均为不超过 500 的正整数。同行数字间以空格分隔。 输出 在一行中输出两枚硬币的面值 v 1  和 v 2  ,以 1 个空格分隔,满足条件 v 1 +v 2 =m,并且 v 1  ≤ v 2 。如果这样的解不唯一,输出 v 1  最小的那个解。如果解不存在,则输出 `No Solution`。 样例输入 样例#1: 8 15 1 2 8 7 2 4 11 15 样例#2: 7 14 1 8 7 2 4 11 15 样例输出 样例#1: 4 11 样例#2: No Solution 参考程序: #include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { int n, m; cin >> n >> m; vector<int> coins(n); for (int i = 0; i < n; ++i) { cin >> coins[i]; } if (n < 2) { cout << "No Solution" << endl; return 0; } sort(coins.begin(), coins.end()); int left = 0, right = n - 1; while (left < right) { int sum = coins[left] + coins[right]; if (sum == m) { cout << coins[left] << " " << coins[right] << endl; return 0; } else if (sum < m) { ++left; } else { --right; } } cout << "No Solution" << endl; return 0; } 2 完美数列 给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 M ≤ m*p,则称这个数列是完美数列。 现在给定参数 p 和一些正整数,请你从中选择尽可能多的数构成一个完美数列。 时间限制:1000 内存限制:65536 输入 输入第一行给出两个正整数 n 和 p,其中 n(≤ 10 5 )是输入的正整数的个数,p(≤ 10 9 )是给定的参数。第二行给出 n 个正整数,每个数不超过 10 9 。 输出 在一行中输出最多可以选择多少个数可以用它们组成一个完美数列。 样例输入 10 8 2 3 20 4 5 1 6 7 8 9 样例输出 8
202503C语言四级,202503青少年软件编程(C语言)等级考试(四级)真题试卷
下载提示

下载及版权说明:6547网文库内容来自网络及各平台公开内容(属于用户上传,不保证正确性,只做参考),旨在帮助同学们学习少儿编程相关知识及内容,仅限内部学习及使用,以分享为主,下载本文档之后请合法使用相关、真题、素材、课件、教程等内容,若内容存在侵权,请进行 举报 及查看 免责声明