测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A40856. 五星填数

填空题 困难

题目描述

五星填数

题目描述

如图的五星图案节点填上数字:1 ~ 12,除去 7 和 11。

要求每条直线上数字和相等。(上图就是恰当的填法)

请你利用计算机搜索所有可能的填法有多少种。

注意

旋转或镜像后相同的算同一种填法。

答案提交

请提交表示方案数目的整数,不要填写任何其它内容。

参考答案

#include <iostream> #include <algorithm> using namespace std; int main() { int ans = 0; int a[10] = {1, 2, 3, 4, 5, 6, 8, 9, 10, 12}; do { int t = a[0] + a[2] + a[5] + a[8]; if(t == a[0] + a[3] + a[6] + a[9] && t == a[1] + a[2] + a[3] + a[4] && t == a[1] + a[5] + a[7] + a[9] && t == a[4] + a[6] + a[7] + a[8]) ans ++; } while(next_permutation(a, a + 10)); cout << ans / 10 << endl; // 旋转 + 镜像 == 10 return 0; }

答案解析

答案:12

上一题 下一题