当前位置 博文首页 > AC_Dreameng:2016第七届蓝桥杯C/C++ B组省赛题解

    AC_Dreameng:2016第七届蓝桥杯C/C++ B组省赛题解

    作者:[db:作者] 时间:2021-07-16 13:12


    首先声明,此篇博客转自:http://blog.csdn.net/y1196645376/article/details/50938608

    写的不错,本想转载的,但是他的排版我不是很喜欢,我做了一点改变..

    1.煤球数目

    有一堆煤球,堆成三角棱锥形。具体:
    第一层放1个,
    第二层3个(排列成三角形),
    第三层6个(排列成三角形),
    第四层10个(排列成三角形),
    ....
    如果一共有100层,共有多少个煤球?

    请填表示煤球总数目的数字。
    注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。


    有多少人的结果是5050,正确答案是:171700

    代码:

    #include <iostream>
    using namespace std;
    int main()
    {
        int s1=0,s2=0;
        for(int i=1;i<=100;i++)
        {
            s1+=i;//第n层的数量
            s2+=s1;//到<span style="font-family: Arial, Helvetica, sans-serif;">第n层的数量共用去的数量</span>
        }
        cout<<s2<<endl;
        return 0;
    }
    


    2.生日蜡烛

    某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。

    现在算起来,他一共吹熄了236根蜡烛。

    请问,他从多少岁开始过生日party的?

    请填写他开始过生日party的年龄数。
    注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。


    思路:暴力枚举开始举办party的年龄和今年的年龄.答案:开始于26岁,今年33岁.


    #include<stdio.h>
    int main()
    {
    	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);
    			}
    		}
    	}
    	return 0;
    }
    


    3.凑算式



    ? ? ? ?B ? ? ?DEF
    A + --- + ------- = 10
    ? ? ? ?C ? ? ?GHI
    ? ? ?
    (如果显示有问题,可以参见下图)


    ?
    这个算式中A~I代表0~9的数字,不同的字母代表不同的数字。


    比如:
    6+8/3+952/714 就是一种解法,
    5+3/1+972/486 是另一种解法。


    这个算式一共有多少种解法?


    注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。

    这个题不多说了,直接暴力生成9的全排列然后去验证等式是否成立,只是验证的时候如果防止精度问题可以通分把除法变成乘法。

    答案是:29cs