2016第七届蓝桥杯CC++-B组题解.doc

2016第七届蓝桥杯CC++-B组题解.doc

ID:51253682

大小:115.24 KB

页数:23页

时间:2020-03-20

2016第七届蓝桥杯CC++-B组题解.doc_第1页
2016第七届蓝桥杯CC++-B组题解.doc_第2页
2016第七届蓝桥杯CC++-B组题解.doc_第3页
2016第七届蓝桥杯CC++-B组题解.doc_第4页
2016第七届蓝桥杯CC++-B组题解.doc_第5页
资源描述:

《2016第七届蓝桥杯CC++-B组题解.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第一题煤球数目有一堆煤球,堆成三角棱锥形。具体:第一层放1个,第二层3个(排列成三角形),第三层6个(排列成三角形),第四层10个(排列成三角形),....如果一共有100层,共有多少个煤球?请填表示煤球总数目的数字。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。这道题坑死了,第一次看堆成三角棱锥形,草稿本画半天都没画出个三角棱锥。后来单独看每句话才知道每层一个三角形叠起来就是三角棱锥。我去。看懂题目这个题目就很简单了,每层的个数是上层的个数加上层数,意思就是An=An-1+n,然而

2、题目是求的前100层一共多少煤球。所以是Sn.代码双重for循环就出来了。答案是:1717001.#include  2.int main()  3.{  4.    int a[101] ={0};  5.    for(int i = 1 ; i < 101 ; i ++)  6.        a[i] = a[i-1] + i;  7.    int ans = 0;  8.    for(int j = 1 ; j < 101 ; j ++)  9.        ans +

3、= a[j];  10.    printf("%d",ans);  11.    return 0;  12.}  第二题:生日蜡烛某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。现在算起来,他一共吹熄了236根蜡烛。请问,他从多少岁开始过生日party的?请填写他开始过生日party的年龄数。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。呵呵,水题,但是出题人不严谨啊!!!怎么就不能考虑万一他今年236岁呢....好了不说了强迫症犯了。蓝桥杯

4、这种不像acm的题目的,能暴力直接暴力。不用想太多。直接从1~236枚举start,end分别表示他开始过生日的年龄和今年的年龄,然后计算之间吹蜡烛的总和如果等于236就输出start,end. 答案是:261.#include  2.int main()  1.{  2.    int start,end;  3.    for(start = 1 ; start < 236 ; start ++)  4.    {  5.        for( end = start ; end

5、 < 236 ; end ++ )  6.        {  7.            int sum = 0;  8.            for(int i = start; i <= end; i ++)  9.                sum += i;  10.            if( sum == 236)  11.            {  12.                printf("start : %d end : %d",start,end);  13

6、.            }  14.        }  15.    }  16.    return 0;  17.}  第三题:凑算式    B   DEFA+—+-———=10    C   GHI(如果显示有问题,可以参见【图1.jpg】)这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。比如:6+8/3+952/714就是一种解法,5+3/1+972/486是另一种解法。这个算式一共有多少种解法?注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。这个题不多说了,直接暴

7、力生成9的全排列然后去验证等式是否成立,只是验证的时候如果防止精度问题可以通分把除法变成乘法。答案是:291.#include  2.int ans = 0;  3.int num[10];  4.bool visit[10];  1.  2.void Solve()  3.{  4.    double sum = num[0] + (double)num[1] / num[2] + (double)(num[3]*100+num[4]*10+num[5])/(num[6]*100+

8、num[7]*10+num[8]);  5.    if(sum == 10)  6.    {  7.        ans ++;  8.    }  9.}  10.  11.void dfs(int index)  12.{  13.    if(index == 9)  14.    {  15.        Solve();  16.        return ;  17.    }  18.    for(int i = 

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。