题目描述
小Z无聊时,想了个问题。由许多边长为1的小正方形,构成了一个n×m的长方形网格。在每个小正方形中,添一条斜线,从右上顶点连到左下顶点,构成了一个新图形,并且包含了许多三角形。小Z打算数清总共有多少三角形,可不一会儿就眼花了,你能帮他吗?
输入
一行,两个整数n和m,表示长方形的长和宽。
输出
一行,一个整数,表示三角形的个数。
思路
这个长方形可以看成很多个小正方形,然后每一个正方形有两个三角形
于是这题就变成了求正方形的数量,(n-i+1)*(m-i+1)就是边长为i的正方形的个数、
var
i,j,k,n,m,q,p:longint;
s:int64;
function min(x,y:longint):longint;
begin
if x<=y then exit(x)
else exit(y);
end;
begin
assign(input,'triangle.in'); reset(input);
assign(output,'triangle.out'); rewrite(output);
readln(n,m);
for i:=1 to min(n,m) do
begin
q:=n-i+1;
p:=m-i+1;
s:=s+q*p*2
end;
writeln(s);
end.
Comments NOTHING