欢迎来到天天文库
浏览记录
ID:53450197
大小:96.13 KB
页数:19页
时间:2020-04-03
《历年蓝桥杯省赛B组真题试题.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、(1)煤球数目有一堆煤球,堆成三角棱锥形。具体:第一层放1个,第二层3个(排列成三角形),第三层6个(排列成三角形),第四层10个(排列成三角形),....如果一共有100层,共有多少个煤球?题解:纯粹的数学题而已inta[101]={0};for(inti=1;i<101;i++)a[i]=a[i-1]+i;intans=0;for(intj=1;j<101;j++)ans+=a[j];printf("%d",ans);(2)生日蜡烛某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。现在算起来,他一共吹熄了2
2、36根蜡烛。请问,他从多少岁开始过生日party的?请填写他开始过生日party的年龄数。题解:暴力枚举。第一重循环枚举刚开始过生日时候的岁数。第二重循环是枚举现在的岁数第三重循环就是将刚开始过生日的岁数和现在的岁数加起来。intstart,end;for(start=1;start<236;start++){for(end=start;end<236;end++){intsum=0;for(inti=start;i<=end;i++)sum+=i;if(sum==236)printf("start:%dend:%d",start,end);
3、}}(3)BDEFA+—+——=10CGHI(如果显示有问题,可以参见【图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代码:intvisit[10],num[10];intsum=0;voiddfs(
4、intn){if(n==10){intb=num[7]*100+num[8]*10+num[9];//GHIinta=num[4]*100+num[5]*10+num[6];//DEF//cout<
5、=1;num[n]=i;dfs(n+1);visit[i]=0;num[n]=0;}}}intmain(){memset(num,0,sizeof(num));memset(visit,0,sizeof(visit));dfs(1);cout<6、间。再分别对子区间排序就可以了。下面的代码是一种实现,请分析并填写划线部分缺少的代码。#includevoidswap(inta[],inti,intj){intt=a[i];a[i]=a[j];a[j]=t;}intpartition(inta[],intp,intr){inti=p;intj=r+1;intx=a[p];while(1){while(ix);//一样的,一直左移直到小于x时if(i>=j)brea7、k;//如果一直移动到了相交的区间,说明这个区间内都是由小到大的,就直接退拉!不用交换啦!swap(a,i,j);//有的话呢,就交换,这样保证了左小右大。}______________________;returnj;}voidquicksort(inta[],intp,intr){if(p8、uicksort(a,0,N-1);for(i=0;i
6、间。再分别对子区间排序就可以了。下面的代码是一种实现,请分析并填写划线部分缺少的代码。#includevoidswap(inta[],inti,intj){intt=a[i];a[i]=a[j];a[j]=t;}intpartition(inta[],intp,intr){inti=p;intj=r+1;intx=a[p];while(1){while(ix);//一样的,一直左移直到小于x时if(i>=j)brea
7、k;//如果一直移动到了相交的区间,说明这个区间内都是由小到大的,就直接退拉!不用交换啦!swap(a,i,j);//有的话呢,就交换,这样保证了左小右大。}______________________;returnj;}voidquicksort(inta[],intp,intr){if(p8、uicksort(a,0,N-1);for(i=0;i
8、uicksort(a,0,N-1);for(i=0;i
此文档下载收益归作者所有