2014第5届蓝桥杯B组c/c++初赛部分题总结~

.

直接暴力:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int i,j;
    double m;
    for(i=0;i<=35;i++)
    {
        for(j=i;j<=42;j++)
        {
            m=2.3*i+1.9*j;
            if(m==82.3)
                cout<<i<<endl;
        }
    }
    return 0;
}

规律:2^n+1;

答案为:2^10+1=1025

答案:14种

#include<bits/stdc++.h>
using namespace std;

int ans=0;

void dfs(int index,int hua,int store,int beer)
{
    if(index>14)
        return;
    if(index==14)
    {
        if(hua==9&&store==5&&beer==1)
  
in          ans++;
    }
    dfs(index+1,hua+1,store,beer-1);
    dfs(index+1,hua,store+1,beer*2);
}t main()
{
    dfs(0,0,0,2);
    cout<<ans<<endl;
    return 0;
}

暴力:

分式除法判断可以用交叉相乘转化成乘法

#include<bits/stdc++.h>
using namespace std;

int ans=0;
int main()
{
    int a,b,c,d;
    for(a=1;a<=9;a++)
    {
        for(b=1;b<=9;b++)
        {
            if(a==b)
                continue;
            for(c=1;c<=9;c++)
            {
                for(d=1;d<=9;d++)
                {
                    if(c==d)
                        continue;
                    if(b*c*(10*a+d)==a*d*(10*b+c))
                        ans++;
                }
            }
        }
    }
    cout<<ans<<endl;
    return 0;
}

7.六角填数

 如图【1.png】所示六角形中,填入1~12的数字。

    使得每条直线上的数字之和都相同。

    图中,已经替你填好了3个数字,请你计算星号位置所代表的数字是多少?

请通过浏览器提交答案,不要填写多余的内容。

 

#include<bits/stdc++.h>
using namespace std;

int main()
{

    int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};

    do
    {
        int t=a[1]+a[2]+a[3]+a[4];
        if(a[0]==1&&a[1]==8&&a[11]==3&&t==a[7]+a[8]+a[9]+a[10]&&t==a[0]+a[2]+a[5]+a[7]
                &&t==a[4]+a[6]+a[9]+a[11]&&t==a[1]+a[5]+a[8]+a[11]&&t==a[0]+a[3]+a[6]+a[10])
            cout<<a[5]<<endl;
    }while(next_permutation(a,a+12));
    return 0;
}

 

posted on 2018-08-08 11:04  xRacHel  阅读(449)  评论(0)    收藏  举报

导航