codeforces 559A A. Gerald's Hexagon(几何题)

题目链接:

codeforces 559A

题目大意:

给出一个六边形,问它能分成几个边长为1的等边三角形

题目分析:

  • 因为给出的六边形的每个角都是 120 ,所以如果把每个角延伸出去,那么能够得到一个等边三角形,而且延展出的三个部分都是等边三角形。
  • 我们利用等差数列得到一个等边三角形能够拆出 l2 个边长为1的等边三角形。
    -所以我们得到公式 ans=(a0+a1+a2)2a20a22a24

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] ) );
}

你可能感兴趣的:(codeforces,几何题)