黑马程序员技术交流社区
标题:
一个数学问题,用编程怎么解决?
[打印本页]
作者:
HM张博文
时间:
2013-5-18 20:35
标题:
一个数学问题,用编程怎么解决?
本帖最后由 小悟空 于 2013-5-18 21:13 编辑
两条直线最多可以有1个交点,三条直线最多可以有3个交点,4条直线最多可以有6个交点,问:n条直线最多可以有多少个交点?(n>2,n是整数)
作者:
神之梦
时间:
2013-5-18 20:52
隐约记得高中数学老师说过,怎么用表达式写出全忘了,愧对老师啊
作者:
曾大鹏
时间:
2013-5-18 21:03
平面内有2条直线两两相交最多可以得到1个交点,
平面内有3条直线两两相交最多可以得到1+2=3个交点,,(即第四条直线与前面每条直线都相交)
平面内有4条直线两两相交最多可以得到1+2+3=6个交点,(即第四条直线与前面每条直线都相交)
平面内有5条直线两两相交最多可以得到1+2+3+4=10个交点,,(即第四条直线与前面每条直线都相交)
......
所以平面内有n条直线两两相交最多可以得到1+2+3+...+n-1=(1+n-1)*(n-1)/2=(n*n-n)/2个交点
作者:
飞鸟青崖
时间:
2013-5-18 21:05
推理一下就知道了啊。
捕获.JPG
(25.48 KB, 下载次数: 0)
下载附件
2013-5-18 21:04 上传
作者:
张洪慊
时间:
2013-5-18 21:05
本帖最后由 张洪慊 于 2013-5-18 21:08 编辑
多条直线最多交点即两两相交,这里组合知识
即C(n,2)=n*(n-1) / 2 (C(n,2)从n条直线中任意选两个)
如果程序实现的话: (简单写下)
import java.util.Scanner;
class TestChar{
public static void main(String[] args){
Scanner scan=new Scanner(System.in);//用下扫描器
while(scan.hasNextInt()){//输入非int值循环结束
int n=scan.nextInt();
System.out.println(n*(n-1)/2);
}
scan.close();
}
}
复制代码
作者:
殇_心。
时间:
2013-5-18 21:07
如果问题已解决,请及时修改分类,否则继续提问,谢谢合作!
作者:
我是松鼠
时间:
2013-5-18 22:52
请问怎么修改分类?
作者:
HM张博文
时间:
2013-5-19 12:43
我是松鼠 发表于 2013-5-18 22:52
请问怎么修改分类?
在你的发帖里面点“编辑”
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2