一,题目描述
二,问题分析
1.公式法:长方形的个数 = 长边上的线段和×宽边上的线段和
2.排列组合法
一个长方形由四个顶点,四条边所确定
以一行m列为例,只有一行,所以长方形的宽已经确定为1,而长的确定就是组合问题,即在n个点中找两个点组合,注意这两个点可以重合,所以是C(m+1,2)
扩展问题,一个n行m列的长方形中,宽的组合 数C(n+1,2),长的组合数C(m+1,2)
故总共的长方形个数:C(n+1,2)*C(m+1,2)
三,代码解答
#include<stdio.h>
int main()
{
long long int a, b;
while (scanf_s("%lld%lld", &a, &b) != EOF) //输入不止一组数据
printf("%lld\n", a * (a + 1) / 2 * b * (b + 1) / 2);
return 0;
}
1.输入数据不止一组, while (scanf_s("%lld%lld", &a, &b) != EOF)
2.输入的两个整数最大可取 1000 ,其得到的结果超过了 int 类型的范围,故取 long long 类型