LQ_六角填数

来源:互联网 发布:熟练掌握编程 英文 编辑:程序博客网 时间:2024/04/29 08:47



标题:六角填数

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

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

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

请通过浏览器提交答案,不要填写多余的内容。
10
直接9层循环就行了

#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
 for(int a=2;a<=12;a++)
 for(int b=2;b<=12;b++)
 if(a!=b){
   for(int c=2;c<=12;c++)
   if(a!=c&&b!=c){
    for(int d=2;d<=12;d++)
    if(a!=d&&b!=d&&c!=d){
      for(int e=2;e<=12;e++)
      if(a!=e&&b!=e&&c!=e&&d!=e){
        for(int f=2;f<=12;f++)
        if(a!=f&&b!=f&&c!=f&&d!=f&&f!=e){
            for(int g=2;g<=12;g++)
            if(a!=g&&b!=g&&c!=g&&d!=g&&e!=g&&f!=g){
               for(int h=2;h<=12;h++)
               if(a!=h&&b!=h&&c!=h&&d!=h&&e!=h&&f!=h&&g!=h){
                  for(int i=2;i<=12;i++){
                   if(a!=i&&b!=i&&c!=i&&d!=i&&e!=i&&f!=i&&g!=i&&h!=i){
                      int A=8+a+b+3; int B=g+f+d+3; int C=1+i+a+c;
                   int D=1+h+f+e; int E=8+i+h+g; int F=c+b+d+e;
                   if(a!=3 && a!=8 && b!=3 && b!=8 && c!=3 && c!=8 && d!=3 && d!=8 && e!=3 && e!=8 && f!=3 && f!=8 && g!=3 && g!=8 && h!=3 && h!=8 && i!=3 && i!=8)
                   {
                       if(A==B && B==C && C==D &&D==E && E==F)
                           printf("%d %d  %d  %d %d %d %d %d %d %d\n",A,a,b,c,d,e,f,g,h,i);
                    }
                  }
                    
                   }
 
              
            }
  
             
            }
  
         
        }
  
       
      }
    
    }
   
   }
  
 }

 return 0;
}

0 0
原创粉丝点击