CF559A Gerald’s Hexagon
题意:给出了六边形的六条边,六条边长短不一,六条边又多个边长为1的单位正三角形组成,求单位正三角形的个数
分析:把六边形补上一些边让它变成一个大的正三角形,边长为len,那它的单位三角形就有len^2个,然后再减去补上的三角形行了,任意画一个满足题意的六边形,延长第一、三、五条边形成一个大的正三角,那么len=a[1]+a[2]+a[6],补的三个小三角形边长分别为a[2]、len-a[2]-a[3]、len-a[1]-a[2],减去就行了
#include<cstdio>
int main(){
int a[10],len,sum;
for(int i=1;i<=6;i++)
scanf("%d",&a[i]);
len=a[1]+a[2]+a[6];
sum=len*len-a[2]*a[2]-(len-a[2]-a[3])*(len-a[2]-a[3])-(len-a[1]-a[2])*(len-a[1]-a[2]);
printf("%d\n",sum);
return 0;
}
本文介绍了一道关于计算六边形内单位正三角形数量的问题。通过将六边形补全为大正三角形并计算其边长,进而得出单位正三角形总数的方法。代码实现使用C++完成。
7135

被折叠的 条评论
为什么被折叠?



