蓝桥杯2012年预赛c++本科
stephen_xupeng
这个作者很懒,什么都没留下…
展开
-
3.海盗比酒量
有一群海盗(不多于20人),在船上比拼酒量。过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了。再打开一瓶酒平分,又有倒下的,再次重复...... 直到开了第4瓶酒,坐着的已经所剩无几,海盗船长也在其中。当第4瓶酒平分喝下后,大家都倒下了。 等船长醒来,发现海盗船搁浅了。他在航海日志中写到:“......昨天,我正好喝了一瓶.......奉劝大家,开船不喝酒,喝酒原创 2013-03-13 23:06:51 · 954 阅读 · 0 评论 -
8.密码发生器
在对银行账户等重要权限设置密码的时候,我们常常遇到这样的烦恼:如果为了好记用生日吧,容易被破解,不安全;如果设置不好记的密码,又担心自己也会忘记;如果写在纸上,担心纸张被别人发现或弄丢了...这个程序的任务就是把一串拼音字母转换为6位数字(密码)。我们可以使用任何好记的拼音串(比如名字,王喜明,就写:wangximing)作为输入,程序输出6位数字。变换的过程如下:第一步. 把字符串6原创 2013-03-16 23:22:42 · 775 阅读 · 0 评论 -
7.放旗子
今有 6 x 6 的棋盘格。其中某些格子已经预先放好了棋子。现在要再放上去一些,使得:每行每列都正好有3颗棋子。我们希望推算出所有可能的放法。下面的代码就实现了这个功能。初始数组中,“1”表示放有棋子,“0”表示空白。 #includeint N = 0;bool CheckStoneNum(int x[][6]) //检查每行每列是否都正好有3颗棋子{原创 2013-03-13 23:32:05 · 788 阅读 · 0 评论 -
2.古堡算式
福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:ABCDE * ? = EDCBA他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!”华生:“我猜也是!”于是,两人沉默了好久,还是没有算出合适的结果来。请你利用计算机的优势,找到破解的答案。把 ABCDE所代表的数字写出来。#include //21978using namespace s原创 2013-03-13 22:34:42 · 555 阅读 · 0 评论 -
1.微生物繁殖
假设有两种微生物 X 和 Y X出生后每隔3分钟分裂一次(数目加倍),Y出生后每隔2分钟分裂一次(数目加倍)。 一个新出生的X,半分钟之后吃掉1个Y,并且,从此开始,每隔1分钟吃1个Y。 现在已知有新出生的 X=10, Y=89,求60分钟后Y的数目。如果X=10,Y=90 呢? 本题的要求就是写出这两种初始条件下,60分钟后Y的数目。 题目的结原创 2013-03-13 22:31:32 · 916 阅读 · 0 评论 -
10.取球博弈
今盒子里有n个小球,A、B两人轮流从盒中取球,每个人都可以看到另一个人取了多少个,也可以看到盒中还剩下多少个,并且两人都很聪明,不会做出错误的判断。我们约定:每个人从盒子中取出的球的数目必须是:1,3,7或者8个。轮到某一方取球时不能弃权!A先取球,然后双方交替取球,直到取完。被迫拿到最后一个球的一方为负方(输方)请编程确定出在双方都不判断失误的情况下,对于特定的初始球数,原创 2013-03-13 23:28:52 · 709 阅读 · 0 评论 -
6.大数乘法
对于32位字长的机器,大约超过20亿,用int类型就无法表示了,我们可以选择int64类型,但无论怎样扩展,固定的整数类型总是有表达的极限!如果对超级大整数进行精确运算呢?一个简单的办法是:仅仅使用现有类型,但是把大整数的运算化解为若干小整数的运算,即所谓:“分块法”。如图【1.jpg】表示了分块乘法的原理。可以把大数分成多段(此处为2段)小数,然后用小数的多次运算组合表示一个大数。可原创 2013-03-13 23:19:34 · 716 阅读 · 0 评论 -
4.奇怪的比赛
某电视台举办了低碳生活大奖赛。题目的计分规则相当奇怪: 每位选手需要回答10个问题(其编号为1到10),越后面越有难度。答对的,当前分数翻倍;答错了则扣掉与题号相同的分数(选手必须回答问题,不回答按错误处理)。 每位选手都有一个起步的分数为10分。 某获胜选手最终得分刚好是100分,如果不让你看比赛过程,你能推断出他(她)哪个题目答对了,哪个题目答错了吗?原创 2013-03-13 23:16:09 · 796 阅读 · 3 评论 -
5.方阵旋转
#include using namespace std;void rotate(int* x, int rank){ int* y = (int*)malloc(rank*rank*4); // 填空 for(int i=0; i<rank * rank; i++) { y[(i%rank)*rank+rank-i/rank-1] = x[i]; /原创 2013-03-13 23:17:56 · 538 阅读 · 0 评论 -
9.夺冠概率
足球比赛具有一定程度的偶然性,弱队也有战胜强队的可能。假设有甲、乙、丙、丁四个球队。根据他们过去比赛的成绩,得出每个队与另一个队对阵时取胜的概率表: 甲 乙 丙 丁 甲 - 0.1 0.3 0.5乙 0.9 - 0.7 0.4 丙 0.7 0.3 - 0.2丁 0.5 0.6 0.8 -数据含义:甲对乙的取胜概率为0.1,丙对乙的胜率原创 2013-03-16 23:23:39 · 666 阅读 · 0 评论