编程,输入平面上n(3<n<=10)个点的坐标,计算各点之间的距离之和。 写出程序,及结果,最好自己已运算验证 10

 我来答
百度网友dde64d5e7
2011-11-15 · TA获得超过2310个赞
知道小有建树答主
回答量:1430
采纳率:66%
帮助的人:1404万
展开全部
/**
* Calculate the length between two points
* @param [number] x1,y1,x2,y2
* @return [number]
*/
function getLength(x1,y1,x2,y2){
return Math.sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
}
/**
* @param [array] arr
* @return [number]
*/
function calculation(arr){
var total = 0;//最终结果
var len = arr.length;//计算传入有几个点

/*当只有一个点时,计算该点到原点的距离*/
if(len == 1) {
return getLength(0,0,arr[0][0],arr[0][1]).toFixed(2);
}

/*计算过程是:取第一个点,计算它与其它点的线段长总和,然后删除此点,再计算下一个点与其它点的线段长总和并累加上一次的计算结果.....重复计算直至只剩一个点*/
do{
for(var i = 1;i<len;i++){//设置i=1,即设第二点开始
total += getLength(arr[0][0],arr[0][1],arr[i][0],arr[i][1]);//获取每段线段长并累加
}
arr.shift();//删除取得所有线段长度的点
len = arr.length;//计算剩余的点数
}while(len > 1)//如果剩余点数不足2点时,停止计算
/*核心部分 结束*/

return total.toFixed(2);//将结果格式化后返回
}

calculation([[0,0],[1,1],[2,2]]);//示例调用,参数为由点坐标构成的二维数组

很不好意思,我不会c++,我把核心的计算过程贴一下给你看吧。其中第一个函数是计算两个点之间的距离,第二个函数是处理坐标集,其余函数调用的都是javascript自带的函数,看不明白的再发问。(我去瞄瞄c++...)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式