77范文网 - 专业文章范例文档资料分享平台

NOIP2010初赛普及组C++题目及答案(2)

来源:网络收集 时间:2020-06-21 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

int main() {

string s; char m1, m2; int i;

getline(cin, s); m1 = ' '; m2 = ' ';

for (i = 0; i < s.length(); i++) if (s[i] > m1) { m2 = m1; m1 = s[i]; }

else if (s[i] > m2) m2 = s[i];

cout<

输入:Expo 2010 Shanghai China 输出:_________ 提示: 字符 ASCII码 4.

#include using namespace std;

const int NUM = 5;

int r(int n) {

int i;

if (n <= NUM) return n;

for (i = 1; i <= NUM; i++)

空格 32 '0' 48 'A' 65 'a' 97

CCF NOIP2010初赛 普及组 C++ 6

if (r(n - i) < 0) return i; return -1; }

int main() {

int n; cin>>n;

cout<

输出:_________(4分) (2) 输入:16

输出:_________(4分)

四、完善程序(前4空,每空2.5分,后6空,每空3分,共计28分)

1.(哥德巴赫猜想)哥德巴赫猜想是指,任一大于2的偶数都可写成两个质数之和。迄今为止,这仍然是一个著名的世界难题,被誉为数学王冠上的明珠。试编写程序,验证任一大于2且不超过n的偶数都能写成两个质数之和。

#include using namespace std;

int main() {

const int SIZE = 1000;

int n, r, p[SIZE], i, j, k, ans; bool tmp;

cin>>n;

CCF NOIP2010初赛

普及组 C++ 7

r = 1; p[1] = 2;

for (i = 3; i <= n; i++) { ① ;

for (j = 1; j <= r; j++) if (i % ② == 0) { tmp = false; break; } if (tmp) { r++; ③ ; } }

ans = 0;

for (i = 2; i <= n / 2; i++) { tmp = false;

for (j = 1; j <= r; j++) for (k = j; k <= r; k++) if (i + i == ④ ) { tmp = true; break; } if (tmp) ans++; }

cout<

若输入n为2010,则输出 ⑤ 时表示验证成功,即大于2且不超过2010的偶数都满足哥德巴赫猜想。

2.(过河问题)在一个月黑风高的夜晚,有一群人在河的右岸,想通过唯一的一根独木桥走到河的左岸。在这伸手不见五指的黑夜里,过桥时必须借助灯光来照明,很不幸的是,他们只有一盏灯。另外,独木桥上最多承受两个人同时经过,否则将会坍塌。每个人单独过桥都需要一定的时间,不同的人需要的时间可能不同。两个人一起过桥时,由于只有一盏灯,

CCF NOIP2010初赛

普及组 C++ 8

所以需要的时间是较慢的那个人单独过桥时所花的时间。现输入n(2≤n<100)和这n个人单独过桥时需要的时间,请计算总共最少需要多少时间,他们才能全部到达河的左岸。

例如,有3个人甲、乙、丙,他们单独过桥的时间分别为1、2、4,则总共最少需要的时间为7。具体方法是:甲、乙一起过桥到河的左岸,甲单独回到河的右岸将灯带回,然后甲、丙再一起过桥到河的左岸,总时间为2+1+4=7。

#include using namespace std;

const int SIZE = 100; const int INFINITY = 10000; const bool LEFT = true; const bool RIGHT = false;

const bool LEFT_TO_RIGHT = true; const bool RIGHT_TO_LEFT = false;

int n, hour[SIZE]; bool pos[SIZE];

int max(int a, int b) {

if (a > b) return a; else

return b; }

int go(bool stage) {

int i, j, num, tmp, ans; if (stage == RIGHT_TO_LEFT) { num = 0; ans = 0;

for (i = 1; i <= n; i++) if (pos[i] == RIGHT) { num++;

if (hour[i] > ans) ans = hour[i];

CCF NOIP2010初赛 普及组 C++ 9

}

if ( ① ) return ans; ans = INFINITY;

for (i = 1; i <= n - 1; i++) if (pos[i] == RIGHT)

for (j = i + 1; j <= n; j++) if (pos[j] == RIGHT) { pos[i] = LEFT; pos[j] = LEFT;

tmp = max(hour[i], hour[j]) + ② ; if (tmp < ans) ans = tmp; pos[i] = RIGHT; pos[j] = RIGHT; } return ans; }

if (stage == LEFT_TO_RIGHT) { ans = INFINITY;

for (i = 1; i <= n; i++) if ( ③ ) { pos[i] = RIGHT; tmp = ④ ; if (tmp < ans) ans = tmp; ⑤ ; } return ans; }

return 0; }

int main() {

int i; cin>>n;

CCF NOIP2010初赛 普及组 C++ 10

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库NOIP2010初赛普及组C++题目及答案(2)在线全文阅读。

NOIP2010初赛普及组C++题目及答案(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/1115488.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: