题目:有一条直线,线上有n个点(n>=2),请问这条直线会被分隔成多少个线段。n从键盘输入。
解题思路:先计算出两个点、三个点、四个点时线段的数量,由此可得出规律,继而可得出答案.
当直线上有2个点时,组成1条线段;
当直线上有3个点时,组成3条线段;
当直线上有4个点时,组成6条线段;
当直线上有5个点时,组成10条线段,
∴当直线上有n个点时组成[n/2](n-1)条线段.
代码部分解释:
在c语言里面如果先用n/2,当n为奇数时结果会是小数,若此时设置的结果是int,则会将小数部分省略(因为float类型转换成int是强制转换,相当于舍尾取整,把小数部分都去掉了就剩整数了。),将使得结果不准确,所以在c语言中公式要写成(n*(n-1))/ 2。
#include<stdio.h>
int main()
{
int a,b;
scanf("%d",&a);
b=(a*(a-1))/2;
printf("%d",b);
return 0;
}