网站大量收购闲置独家精品文档,联系QQ:2885784924

第七届蓝桥杯省赛B组试题.docx

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七届蓝桥杯省赛B组试题

(1) 煤球数目 有一堆煤球,堆成三角棱锥形。具体: 第一层放1个, 第二层3个(排列成三角形), 第三层6个(排列成三角形), 第四层10个(排列成三角形), .... 如果一共有100层,共有多少个煤球? 题解:纯粹的数学题而已 int a[101] ={0}; for(int i = 1 ; i 101 ; i ++) a[i] = a[i-1] + i; int ans = 0; for(int j = 1 ; j 101 ; j ++) ans += a[j]; printf(%d\n,ans); (2) 生日蜡烛 某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。 现在算起来,他一共吹熄了236根蜡烛。 请问,他从多少岁开始过生日party的? 请填写他开始过生日party的年龄数。 题解:暴力枚举。 第一重循环枚举刚开始过生日时候的岁数。 第二重循环是枚举现在的岁数 第三重循环就是将刚开始过生日的岁数和现在的岁数加起来。 int start,end; for(start = 1 ; start 236 ; start ++) { for( end = start ; end 236 ; end ++ ) { int sum = 0; for(int i = start; i = end; i ++) sum += i; if( sum == 236) printf(start : %d end : %d\n,start,end); } } (3) B DEF A + — + —— = 10 C GHI (如果显示有问题,可以参见【图1.jpg】) 这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。 比如: 6+8/3+952/714 就是一种解法, 5+3/1+972/486 是另一种解法。 这个算式一共有多少种解法? //29 题解:DFS+回溯 由于计算机中5/2会等于2,而且如果打算采用精度方面的处理的话,会很麻烦,而且很容易错。 所以,把这些式子全部变成乘法形式就好了。 A*C*GHI+B*GHI+DEF*C=10*C*GHI 代码: int visit[10],num[10]; int sum=0; void dfs(int n) { if(n==10) { int b=num[7]*100+num[8]*10+num[9]; //GHI int a=num[4]*100+num[5]*10+num[6]; //DEF //coutb a num[1] num[2] num[3]endl; if(num[1]*num[3]*b+num[2]*b+num[3]*a==10*num[3]*b) sum++; //cout*endl; return ; } for(int i=1;i=9;++i) { if(!visit[i]) { visit[i]=1; num[n]=i; dfs(n+1); visit[i]=0; num[n]=0; } } } int main() { memset(num,0,sizeof(num)); memset(visit,0,sizeof(visit)); dfs(1); coutsum; return 0; } (4) 快速排序 排序在各种场合经常被用到。 快速排序是十分常用的高效率的算法。 其思想是:先选一个“标尺”, 用它把整个队列过一遍筛子, 以保证:其左边的元素都不大于它,其右边的元素都不小于它。 这样,排序问题就被分割为两个子区间。 再分别对子区间排序就可以了。 这样,排序问题就被分割为两个子区间。 再分别对子区间排序就可以了。 下面的代码是一种实现,请分析并填写划线部分缺少的代码。 #include stdio.h void swap(int a[], int i, int j) { int t = a[i]; a[i] = a[j]; a[j] = t; } int partition(in

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档