欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

直线交点数

发布时间:2025/3/15 编程问答 31 豆豆
生活随笔 收集整理的这篇文章主要介绍了 直线交点数 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

题目描述
平面上有N条直线,且无三线共点,那么这些直线能有多少不同的交点数?

输入输出格式

输入格式:
一个正整数N
输出格式:
一个整数表示方案总数

输入输出样例

输入样例#1:
4
输出样例#1:
5

说明
N<=25
.
.
.
.
.
.

分析

用 a[x,y]表示直线条数为x时,是否可以有y个交点。(是为1,否为0)。
n条直线相交,最多有n*(n-1)/2个交点。
设i条直线相交,有j条平行,剩下(i-j)条相交于这j条直线。(1≤j≤i)
则共 ((i-j)*j+k)个交点,其中k为(i-j)条直线相交可能的点数。
最后,只要统计a[n,i] (0≤i≤n*(n-1)/2) 中可行方案的总数即可。
.
.
.
.
.
.

程序:
var a:array[1..25,0..300]of longint; n,m,i,j,k,ans:longint; beginreadln(n);fillchar(a,sizeof(a),0);for i:=1 to n dobegina[i,0]:=1;for j:=1 to i dobeginm:=i-j;for k:=0 to (m*(m-1)) div 2 doif a[m,k]=1 then a[i,m*j+k]:=1;end;end;ans:=0;for i:=0 to (n*(n-1))div 2 doif a[n,i]=1 then inc(ans);writeln(ans); end.

转载于:https://www.cnblogs.com/YYC-0304/p/9499973.html

总结

以上是生活随笔为你收集整理的直线交点数的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。