一个nodejs在线编程题目做为此类参考

来源:互联网 发布:历代windows 编辑:程序博客网 时间:2024/05/02 01:37

题目描述
中位数定义:一组数据按从小到大的顺序依次排列,处在中间位置的一个数(或最中间两个数据的平均数). 给出一组无序整数,求出中位数,如果求最中间两个数的平均数,向下取整即可(不需要使用浮点数)
输入描述:
该程序包含多组测试数据,每一组测试数据的第一行为N,代表该组测试数据包含的数据个数,1<=N<=10000.
接着N行为N个数据的输入,N=0时结束输入
输出描述:
输出中位数,每一组测试数据输出一行

var readline = require('readline');rl = readline.createInterface({    input: process.stdin,    output: process.stdout});var inputs = [];var num = 0;rl.on('line', function(data) {    if(num == 0){        num = Number(data.trim());    } else {        inputs.push(data.trim());        if (num == inputs.length) {            var result = deal(inputs);            console.log(result);            inputs.length = 0;             num = 0;            }    }});function deal(inputs) {    var result = 0;    // dosomething    var data =     inputs.map(function(item){return parseInt(item.trim())}).sort(function(v1,v2){return v1-v2});    var len = data.length;    if(len%2==0){        var l = len/2;        result = Math.floor((data[l]+data[l-1])/2);    }else{        var l = (len-1)/2;        result = data[l]    }    return result;}

rl.on(‘line’,function(){});这样的读取方式似乎更适合多个测试用例的读取。
此文章主要是提供一个ndoejs编程题模板。

原创粉丝点击