篮桥杯软件设计大赛结果填空附参考答案.docx
- 文档编号:18235845
- 上传时间:2023-08-14
- 格式:DOCX
- 页数:23
- 大小:138.88KB
篮桥杯软件设计大赛结果填空附参考答案.docx
《篮桥杯软件设计大赛结果填空附参考答案.docx》由会员分享,可在线阅读,更多相关《篮桥杯软件设计大赛结果填空附参考答案.docx(23页珍藏版)》请在冰点文库上搜索。
篮桥杯软件设计大赛结果填空附参考答案
结果填空题
1.空瓶换汽水
浪费可耻,节约光荣。
饮料店节日搞活动:
不用付费,用3个某饮料的空瓶就可以换一瓶该饮料。
刚好小明前两天买了2瓶该饮料喝完了,瓶子还在。
他耍了个小聪明,向老板借了一个空瓶,凑成3个,换了一瓶该饮料,喝完还瓶!
!
饮料店老板一统计,已经售出该饮料且未还瓶的有12345瓶,那么如果这些饮料的买主都如小明一样聪明,老板最多还需要送出多少瓶饮料呢?
显然答案是个正整数。
参考答案:
6172
2.三人年龄
三个神秘蒙面人来访F博士。
博士询问他们年龄时,他们说:
我们中年龄最小的不超过19岁。
我们3人年龄总和为70岁。
且我们三人年龄的乘积是所有可能情况中最大的。
请帮助F博士计算他们的年龄,从小到大排列,用逗号分开。
#include
voidmain(){
inti,j,k;
intmax=0;
intsea;
inta=0,b=0,c=0;
for(i=0;i<20;i++)
for(j=0;j<70;j++)
for(k=0;k<70;k++){
if(i+j+k==70){
sea=i*j*k;
if(sea>max){
max=sea;
a=i;b=j;c=k;
}
}
}
printf("%d,%d,%d",a,b,c);
}
参考答案:
19,25,26
3.考察团组成
某饭店招待国外考察团。
按照标准,对领导是400元/人,随团职员200元/人,对司机50元/人。
考察团共36人,招待费结算为3600元,请问领导、职员、司机各几人。
答案是三个整数,用逗号分隔。
参考答案:
3,5,28
4.微生物增殖
假设有两种微生物X和Y
X出生后每隔3分钟分裂一次(数目加倍),Y出生后每隔2分钟分裂一次(数目加倍)。
一个新出生的X,半分钟之后吃掉1个Y,并且,从此开始,每隔1分钟吃1个Y。
现在已知有新出生的X=10,Y=89,求60分钟后Y的数目。
如果X=10,Y=90呢?
本题的要求就是写出这两种初始条件下,60分钟后Y的数目。
题目的结果令你震惊吗?
这不是简单的数字游戏!
真实的生物圈有着同样脆弱的性质!
也许因为你消灭的那只Y就是最终导致Y种群灭绝的最后一根稻草!
请忍住悲伤,把答案写在“解答.txt”中,不要写在这里!
两个整数,每个1行。
#include
voidmain(){
inti,x,y;
printf("请输入x和y:
");
scanf("%d,%d",&x,&y);
for(i=1;i<=120;i++){
if(i%2==1)y=y-x;
if(i%4==0)y=2*y;
if(i%6==0)x=2*x;
}
printf("%d,%d",x,y);
}
参考答案:
0
94371840
5.除去次方数
自然数的平方数是:
1491625…
自然数的立方数是:
182764125…
自然数的4次方数是:
11681256…
…
这些数字都可以称为次方数。
1~10000中,去掉所有的次方数,还剩下多少个数字?
#include
#include
intqiumi(inta);
intfanhui();
voidmain(){
intcount;
count=fanhui();
printf("%d",(10000-count));
}
intqiumi(inta){
inti,temp,count=0;
for(i=2;i<=14;i++){
temp=pow(a,i);
if(temp>0&&temp<=10000)count++;
}
returncount;
}
intfanhui(){
intt=0,i;
for(i=2;i<=100;i++)
t=t+qiumi(i);
t=t-(qiumi(4)+qiumi(8)+qiumi(16)+qiumi(32)+qiumi(64)+qiumi(9)+qiumi(27)+qiumi(81)+qiumi(25)+qiumi(36)+qiumi(49));
returnt;
}
参考答案:
9875
6.正六面体染色
正六面体用4种颜色染色。
共有多少种不同的染色样式?
要考虑六面体可以任意旋转、翻转。
参考答案:
240
7.古堡算式
福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:
ABCDE*?
=EDCBA
他对华生说:
“ABCDE应该代表不同的数字,问号也代表某个数字!
”
华生:
“我猜也是!
”
于是,两人沉默了好久,还是没有算出合适的结果来。
请你利用计算机的优势,找到破解的答案。
把ABCDE所代表的数字写出来。
答案写在“解答.txt”中,不要写在这里!
#include
voidmain(){
inti,a,b,c,d,e,y;
for(i=10000;i<100000;i++){
a=i/10000;
b=(i%10000)/1000;
c=(i%10000%1000)/100;
d=(i%10000%1000%100)/10;
e=i%10;
if(a==b||a==c||a==d||a==e||b==c||b==d||b==e||c==d||c==e||d==e)
continue;
y=a+b*10+c*100+d*1000+e*10000;
if(y%i==0){
printf("%d",i);
}
}
}
参考答案:
21978
8.海盗比酒量
有一群海盗(不多于20人),在船上比拼酒量。
过程如下:
打开一瓶酒,所有在场的人平分喝下,有几个人倒下了。
再打开一瓶酒平分,又有倒下的,再次重复......直到开了第4瓶酒,坐着的已经所剩无几,海盗船长也在其中。
当第4瓶酒平分喝下后,大家都倒下了。
等船长醒来,发现海盗船搁浅了。
他在航海日志中写到:
“......昨天,我正好喝了一瓶.......奉劝大家,开船不喝酒,喝酒别开船......”
请你根据这些信息,推断开始有多少人,每一轮喝下来还剩多少人没倒下。
如果有多个可能的答案,请列出所有答案,每个答案占一行。
格式是:
人数,人数,...
例如,有一种可能是:
20,5,4,2,0
多个答案排列顺序不重要。
答案写在“解答.txt”中,不要写在这里!
#include
#include
voidmain(){
inti,j,k,m,t,f,e;
for(i=20;i>0;i--)
for(j=i-1;j>0;j--)
for(k=j-1;k>0;k--)
for(m=k-1;m>0;m--){
if(i*j*k+i*j*m+i*k*m+j*k*m==i*j*k*m)
printf("%d,%d,%d,%d,%d\n",i,j,k,m,0);
}
}
参考答案:
18,9,3,2,0(1分)
15,10,3,2,0(2分)
20,5,4,2,0(0分)
12,6,4,2,0(2分)
9.奇怪的比赛
某电视台举办了低碳生活大奖赛。
题目的计分规则相当奇怪:
每位选手需要回答10个问题(其编号为1到10),越后面越有难度。
答对的,当前分数翻倍;答错了则扣掉与题号相同的分数(选手必须回答问题,不回答按错误处理)。
每位选手都有一个起步的分数为10分。
某获胜选手最终得分刚好是100分,如果不让你看比赛过程,你能推断出他(她)哪个题目答对了,哪个题目答错了吗?
如果把答对的记为1,答错的记为0,则10个题目的回答情况可以用仅含有1和0的串来表示。
例如:
0010110011就是可能的情况。
你的任务是算出所有可能情况。
每个答案占一行。
多个答案顺序不重要。
答案写在“解答.txt”中,不要写在这里!
/*运用字符串编程不要忘记加单引号*/
#include
#include
voidwork(intnum,intcount,char*a){
if(num==10){
if(count==100)
puts(a);
return;
}
a[num]='1';
work(num+1,count+count,a);
a[num]='0';
work(num+1,count-num-1,a);
}
intmain(){
chara[12]={0};
work(0,10,a);
}
参考答案:
0010110011(0分)
0111010000(4分)
1011010000(4分)
10.土地测量
造成高房价的原因有许多,比如土地出让价格。
既然地价高,土地的面积必须仔细计算。
遗憾的是,有些地块的形状不规则,比如是如图【1.jpg】中所示的五边形。
一般需要把它划分为多个三角形来计算。
已知三边求三角形的面积需要用海伦定理,参见【2.jpg】
各条边长数据如下:
AB=52.1
BC=57.2
CD=43.5
DE=51.9
EA=33.4
EB=68.2
EC=71.9
根据这些数据求五边形地块的面积。
四舍五入到小数后两位。
只写结果,不要源代码!
答案写在“解答.txt”中,不要写在这里!
图1
图2
#include
#include
floatmianji(floata,floatb,floatc);
voidmain(){
floatsuma;
suma=mianji(52.1,33.4,68.2)+mianji(57.2,68.2,71.9)+mianji(43.5,71.9,51.9);
printf("%.2f",suma);
}
floatmianji(floata,floatb,floatc){
floats;
floatw;
s=(a+b+c)/2;
w=sqrt(s*(s-a)*(s-b)*(s-c));
returnw;
}
参考答案:
3789.86
11.欧拉与鸡蛋
大数学家欧拉在集市上遇到了本村的两个农妇,每人跨着个空篮子。
她们和欧拉打招呼说两人刚刚卖完了所有的鸡蛋。
欧拉随便问:
“卖了多少鸡蛋呢?
”
不料一个说:
“我们两人自己卖自己的,一共卖了150个鸡蛋,虽然我们卖的鸡蛋有多有少,但刚好得了同样的钱数。
你猜猜看!
”
欧拉猜不出。
另一个补充道:
“如果我按她那样的价格卖,可以得到32元;如果她按我的价格卖,可以得到24.5元”。
欧拉想了想,说出了正确答案。
我们不是数学家,懒得列出公式来分析。
但计算机可以“暴力破解”,就是把所有可能情况都试验一遍,撞上为止!
请写出每人鸡蛋的数目(顺序不限),用逗号隔开。
答案写在“解答.txt”中,不要写在这里!
#include
voidmain(){
inti,j;
for(i=1;i<150;i++){
j=150-i;
if((320*i*i==245*j*j)||(245*i*i==320*j*j)){
printf("%d,%d\n",i,j);
}
}
}
参考答案:
70,80或80,70
12.巧排扑克牌
小明刚上小学,学会了第一个扑克牌“魔术”,到处给人表演。
魔术的内容是这样的:
他手里握着一叠扑克牌:
A,2,....J,Q,K一共13张。
他先自己精心设计它们的顺序,然后正面朝下拿着,开始表演。
只见他先从最下面拿一张放到最上面,再从最下面拿一张翻开放桌子上,是A;然后再从最下面拿一张放到最上面,再从最下面拿一张翻开放桌子上,是2;......如此循环直到手中只有一张牌,翻开放桌子上,刚好是K。
这时,桌上牌的顺序是:
A,2,3,4,5,6,7,8,9,10,J,Q,K
请你计算一下,小明最开始的时候手里牌的顺序是怎样的。
把结果写出来,逗号分割,小明“魔术”开始时,最下面的那张牌输出为第一个数据。
考场不提供扑克牌,你只能用计算机模拟了,撕碎草稿纸模拟扑克属于作弊行为!
另外,你有没有把录像倒着放过?
很有趣的!
回去试试!
参考答案:
7,A,Q,2,8,3,J,4,9,5,K,6,10
13.排座位
要安排:
3个A国人,3个B国人,3个C国人坐成一排。
要求不能使连续的3个人是同一个国籍。
求所有不同方案的总数?
参考答案:
283824
14.黄金队列
黄金分割数0.618与美学有重要的关系。
舞台上报幕员所站的位置大约就是舞台宽度的0.618处,墙上的画像一般也挂在房间高度的0.618处,甚至股票的波动据说也能找到0.618的影子....
黄金分割数是个无理数,也就是无法表示为两个整数的比值。
0.618只是它的近似值,其真值可以通过对5开方减去1再除以2来获得,我们取它的一个较精确的近似值:
0.618034
有趣的是,一些简单的数列中也会包含这个无理数,这很令数学家震惊!
134711182947....称为“鲁卡斯队列”。
它后面的每一个项都是前边两项的和。
如果观察前后两项的比值,即:
1/3,3/4,4/7,7/11,11/18...会发现它越来越接近于黄金分割数!
你的任务就是计算出从哪一项开始,这个比值四舍五入后已经达到了与0.618034一致的精度。
请写出该比值。
格式是:
分子/分母。
比如:
29/47
答案写在“解答.txt”中,不要写在这里!
参考答案:
1364/2207
15.汉诺塔计数
汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。
大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。
大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上(可以借助第三根柱子做缓冲)。
并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。
如图【1.jpg】是现代“山寨”版的该玩具。
64个圆盘太多了,所以减为7个,金刚石和黄金都以木头代替了......但道理是相同的。
据说完成大梵天的命令需要太多的移动次数,以至被认为完成之时就是世界末日!
你的任务是精确计算出到底需要移动多少次。
很明显,如果只有2个圆盘,需要移动3次。
圆盘数为3,则需要移动7次。
那么64个呢?
答案写在“解答.txt”中,不要写在这里!
图1
参考答案:
184********709551615
#include
#include
voidf(inta){
doublet;
t=pow(2,a)-1;
printf("%lf",t);
}
voidmain(){
f(64);
}
16.猜生日
今年的植树节(2012年3月12日),小明和他的叔叔还有小伙伴们一起去植树。
休息的时候,小明的同学问他叔叔多大年纪,他叔叔说:
“我说个题目,看你们谁先猜出来!
”
“把我出生的年月日连起来拼成一个8位数(月、日不足两位前补0)正好可以被今天的年、月、日整除!
”
他想了想,又补充到:
“再给个提示,我是6月出生的。
”
根据这些信息,请你帮小明算一下,他叔叔的出生年月日。
答案写在“解答.txt”中,不要写在这里!
格式是年月日连成的8位数。
例如,如果是1948年6月12日,就写:
19480612
#include
#include
voidmain(){
inti,j,k;
for(i=1900;i<2012;i++)
for(j=1;j<=30;j++){
intt;
t=i*pow(10,4)+600+j;
if((t%2012==0)&&(t%3==0)&&(t%12==0))
printf("%d",t);
}
}
参考答案:
19550604
17.棋盘上的麦子
你一定听说过这个故事。
国王对发明国际象棋的大臣很佩服,问他要什么报酬,大臣说:
请在第1个棋盘格放1粒麦子,在第2个棋盘格放2粒麦子,在第3个棋盘格放4粒麦子,在第4个棋盘格放8粒麦子,......后一格的数字是前一格的两倍,直到放完所有棋盘格(国际象棋共有64格)。
国王以为他只是想要一袋麦子而已,哈哈大笑。
当时的条件下无法准确计算,但估算结果令人吃惊:
即使全世界都铺满麦子也不够用!
请你借助计算机准确地计算,到底需要多少粒麦子。
答案写在“解答.txt”中,不要写在这里!
#include
#include
voidmain(){
inti,a[64];
chars[24];
doublesum=0;
for(i=0;i<64;i++){
a[i]=pow(2,i);
}
for(i=0;i<64;i++)
sum+=a[i];
printf("%lf",sum);
}
参考答案:
184********709551615
18.国庆星期日
1949年的国庆节(10月1日)是星期六。
今年(2012)的国庆节是星期一。
那么,从建国到现在,有几次国庆节正好是星期日呢?
只要答案,不限手段!
可以用windows日历,windows计算器,Excel公式,。
。
。
。
。
当然,也可以编程!
不要求写出具体是哪些年,只要一个数目!
千万不要提交源代码!
答案不要写在这里,写在“解答.txt”中
参考答案:
#include
voidmain(){
intmonth[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
intsum=0;
intyy=1949,mm=10,dd=1;
intweek=5;
while(!
(yy==2012&&mm==10&&dd==1))
{
if((yy%100!
=0&&yy%4==0)||(yy%400==0))
month[2]=29;
elsemonth[2]=28;
dd++;
if(dd>month[mm])
{
dd=1;
mm++;
}
if(mm>12)
{
mm=1;
yy++;
}
week=(week+1)%7;
if(mm==10&&dd==1&&week==6)
{
sum++;
}
}
printf("%d\n",sum);
}
9
19.找素数
素数就是不能再进行等分的整数。
比如:
7,11。
而9不是素数,因为它可以平分为3等份。
一般认为最小的素数是2,接着是3,5,...
请问,第100002(十万零二)个素数是多少?
请注意:
“2”是第一素数,“3”是第二个素数,依此类推。
不需要提交源代码,只要写出准确的结果即可!
答案写在:
“解答.txt”中,不要写在这里。
/*先判断一个数是不是素数,然后在用while循环找到第100002个素数*/
#include
#include
intf(inta){
inti;
for(i=2;i if(a%i==0) break; } if(i>sqrt(a))return0; }; voidmain(){ inta=3,count=1; while(count! =100002){ if(f(a)==0)count++; a=a+1; } printf("%d",a-1); } 参考答案: 1299743 20.填写算式 看这个算式: ☆☆☆+☆☆☆=☆☆☆ 如果每个五角星代表1~9的不同的数字。 这个算式有多少种可能的正确填写方法? 173+286=459 295+173=468 173+295=468 183+492=675 以上都是正确的填写法! 注意: 111+222=333是错误的填写法! 因为每个数字必须是不同的! 也就是说: 1~9中的所有数字,每个必须出现且仅出现一次! 注意: 不包括数字“0”! 注意: 满足加法交换率的式子算两种不同的答案。 所以答案肯定是个偶数! 注意: 只要求计算不同的填法的数目 不要求列出所有填写法 更不要求填写源代码! 答案不要写在这里,请写在“解答.txt”中! #include intf(inta,intb,intc){ inte,f,g,h,i,j,k,m,n; e=a/100; f=a%100/10; g=a%100%10; h=b/100; i=b%100/10; j=b%100%10; k=c/100; m=c%100/10; n=c%100%10; if(e! =0&&f! =0&&g! =0&&h! =0&&i! =0&&j! =0&&k! =0&&m! =0&&n! =0&&e! =f&&e! =g&&e! =h&&e! =i&&e! =j&&e! =k&&e! =m&&e! =n&&f! =h&&f! =i&&f! =g&&f! =j&&f! =k&&f! =m&&f! =n&&g! =h&&g! =i&&g! =j&&g! =k&&g! =m&&g! =n&&h! =i&&h! =j&&h! =k&&h! =m&&h! =n&&i! =j&&i! =k&&i! =m&&i! =n&&j! =k&&j! =m&&j! =n&&k! =m&&k! =n&&m! =n) return0; else return1; }; voidmain(){ inti,j,k; intcount=0; for(i=100;i<=999;i++) for(j=100;j<=999;j++) for(k=100;k<=999;k++){ if(f(i,j,k)==0&&(i+j)==k){ count++; printf("%d+%d=%d\n",i,j,k); } } printf("%d",count); } 参考答案: 336 21.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 篮桥杯软件设计大赛 结果填空附参考答案 篮桥杯 软件设计 大赛 结果 填空 参考答案
![提示](https://static.bingdoc.com/images/bang_tan.gif)