uva 10790 How Many Points of Intersection?(数学)

48 阅读1分钟

题意:

给定上下两条线分别有多少个点 ,之后求直线相交之后的交点数目,注意线上面的交点是不算的。

思路:

找规律,先画好上面的a个点,

画下面第一个点:它与上面所有点连线后没有交点。

画下面第二个点:它与a1连线后交点为a-1,与a2连线交点为a-2,........ 与最后一个点连线交点为0;

画下面第三给点:它与a1连线后交点为2*(a-1),与a2连线交点为1(a-2)......与最后一个交点连线交点为0;

以此类推。

注意:上下两条线上面的点的排序是没有等间距的,等间距会导致交点变少。

#include<iostream>
#include<cstdio> 
using namespace std;
int main (){
	long long m,n;
	int co=1;
	while(scanf("%lld %lld",&m,&n)&&m&&n){
		printf("Case %d: ",co++);
		printf("%lld\n",m*(m-1)*n*(n-1)/4);
	}
	return 0;
}


\