欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

六角填数

程序员文章站 2023-12-23 16:58:10
...

如图所示六角形中,填入1~12的数字。
使得每条直线上的数字之和都相同。
图中,已经替你填好了3个数字,请你计算星号位置所代表的数字是多少?

六角填数

思路:遍历所有组合,判断是否相等。注意使用next_permutation函数时赋值从a[0]开始。

#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main()
{
    int sum = 0;
    int a[12];
    for(int i = 0; i < 13; i++) a[i] = i+1;
    do
    {
         int b = a[0]+a[2]+a[5]+a[7];
         int c = a[0]+a[3]+a[6]+a[10];
         int d = a[7]+a[8]+a[9]+a[10];
         int e = a[1]+a[2]+a[3]+a[4];
         int f = a[1]+a[5]+a[8]+a[11];
         int g = a[4]+a[6]+a[9]+a[11];
         if(b==c&&b==d&&b==e&&b==f&&b==g&&
            c==d&&c==e&&c==f&&c==g&&d==e&&
            d==f&&d==g&&e==f&&e==g&&f==g)
         {
            cout<<a[5]<<endl;
            break;
         }
         
            
    }
    while(next_permutation(a,a+12));
    
    return 0; 
}

上一篇:

下一篇: