蓝桥杯_C语言_本科B——六角填数

标题:六角填数
这里写图片描述
如图所示六角形中,填入1~12的数字。
使得每条直线上的数字之和都相同。
图中,已经替你填好了3个数字,请你计算星号位置所代表的数字是多少?
请通过浏览器提交答案,不要填写多余的内容。

最好理解但最麻烦的写法(一开始的)(⊙﹏⊙)b

#include <stdio.h>
int main()
{
    int a,b,c,d,e,f,g,h,i;
    int x,y,z,u,v,w;
    for(a=2;a<=12;a++)
    {
        if(a==3||a==8)continue;
        for(b=2;b<=12;b++)
        {
            if(b==3||b==8||b==a)continue;
            for(c=2;c<=12;c++)
            {
                if(c==3||c==8||c==b||c==a)continue;
                for(d=2;d<=12;d++)
                {
                    if(d==3||d==8||d==c||d==b||d==a)continue;
                    for(e=2;e<=12;e++)
                    {
                        if(e==3||e==8||e==d||e==d||e==c||e==b||e==a)continue;
                        for(f=2;f<=12;f++)
                        {
                            if(f==3||f==8||f==a||f==b||f==c||f==d||f==e)continue;
                            for(g=2;g<=12;g++)
                            {
                                if(g==3||g==8||g==a||g==b||g==c||g==d||g==e||g==f)continue;
                                for(h=2;h<=12;h++)
                                {
                                    if(h==3||h==8||h==a||h==b||h==c||h==d||h==e||h==f||h==g)continue;
                                    for(i=2;i<=12;i++)
                                    {
                                        if(i==3||i==8||i==a||i==b||i==c||i==d||i==e||i==f||i==g||i==h)continue;
                                        x=1+a+d+f;
                                        y=8+a+b+c;
                                        z=1+b+e+i;
                                        u=c+e+h+3;
                                        v=f+g+h+i;
                                        w=8+d+g+3;
                                        if(x==y&&x==z&&x==u&&x==v&&x==w)
                                        {
                                            printf("    1\n"); 
                                            printf("8  %d  %d  %d\n",a,b,c);
                                            printf(" %d\t%d\n",d,e);
                                            printf("%d  %d  %d  %d\n",f,g,h,i);
                                            printf("    3\n\n");
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
} 
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值