题目链接:
题目大意:
给出一个六边形,问它能分成几个边长为1的等边三角形
题目分析:
- 因为给出的六边形的每个角都是 120。 ,所以如果把每个角延伸出去,那么能够得到一个等边三角形,而且延展出的三个部分都是等边三角形。
- 我们利用等差数列得到一个等边三角形能够拆出
l2
个边长为1的等边三角形。
-所以我们得到公式 ans=(a0+a1+a2)2−a20−a22−a24
AC代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int a[7];
int squre ( int x )
{
return x*x;
}
int main ( )
{
for ( int i = 0 ; i < 6 ; i++ )
scanf ( "%d" , &a[i] );
printf ( "%d\n" , squre ( a[0]+a[1]+a[2] ) - squre ( a[0] ) - squre ( a[2] ) - squre ( a[4] ) );
}