题目大意:两条平行线上分别有 a 和 b 个点,每个点与另外一条线上的点都要相连,求交点个数,两线相交就算一个点,不存在三线交于一点的情况。
解题思路:固定第一条线上的 a 个点不动,b 每加 1,加的点的个数是 (1+2+3+…+a-1) * b,b 从一个开始加,总加的次数为 1+2+3+…+b-1,即总点数为 (1+2+3+…+a-1) * (1+2+3+…+b-1)
#include<iostream>
#include<cstdio>
#include<string.h>
#include<stdlib.h>
#include<cmath>
using namespace std;
int count = 0;
int main() {
long long a, b;
while(scanf("%lld%lld", &a, &b) != EOF) {
if (a == 0 && b == 0) break;
long long k = a / 2.0 * (a - 1);
long long t = b / 2.0 * (b - 1);
printf("Case %d: %lld\n", ++count, k * t);
}
return 0;
}