zoukankan      html  css  js  c++  java
  • 在线OJ的小demo

    牛课网OJ规则

    用readLine()代替read_line()

    用readLine()代替read_line()

    用readLine()代替read_line()

    用readLine()代替read_line()

    用readLine()代替read_line()

    多行输入/单行输入(均适用)

    V8:

    // 链接:https://www.nowcoder.com/discuss/276
    
    while(line=readline()){
        var lines = line.split(' ');
        var a = parseInt(lines[0]);
        var b = parseInt(lines[1]);
        print(a+b);
    }
    			
    

    node.js

    process.stdin.resume();
    process.stdin.setEncoding("utf8");
    process.stdin.on("data", function(chunk) {  // data不用管, chunk代表输入的数据
    
        // 单个数字:[1]
        var n = parseInt(chunk);
    
        // 单行多个数字:[1 2 3]
        var arr = chunk.trim().split(" ");
        var n0 = parseInt(arr[0]);
        var n1 = parseInt(arr[1]);
        // 单行多个数字:
        var n0 = parseInt((arr[0].trim().split(" "))[0]);
        var n1 = parseInt((arr[0].trim().split(" "))[1]);
    
    
        // 多行处理:
        var datas = chunk.trim().split("
    ");  // 一行一行的读入数据
    
        // n个数字的读取:(此处假设为第3行数字(则有data[2]),因为下标从0开始)
        // [1 2 3 4 5]
        var arr = datas[2].trim().split(" ");
        var newArr = arr.map(function(item) {  // 对arr数组用map里面的函数返回一个新数组(此处主要是转换为数字)
            return parseInt(item);
        });
    
        // 以此读取
        for(var j = 0;j < n; j++){
            console.log(newArr[j]);
        }
    
    });
    
    

    实例:
    好多鱼问题:

    牛牛有一个鱼缸。鱼缸里面已经有n条鱼,每条鱼的大小为fishSize[i] (1 ≤ i ≤ n,均为正整数),牛牛现在想把新捕捉的鱼放入鱼缸。鱼缸内存在着大鱼吃小鱼的定律。经过观察,牛牛发现一条鱼A的大小为另外一条鱼B大小的2倍到10倍(包括2倍大小和10倍大小),鱼A会吃掉鱼B。考虑到这个,牛牛要放入的鱼就需要保证:
    1、放进去的鱼是安全的,不会被其他鱼吃掉
    2、这条鱼放进去也不能吃掉其他鱼
    鱼缸里面已经存在的鱼已经相处了很久,不考虑他们互相捕食。现在知道新放入鱼的大小范围minSize,maxSize,牛牛想知道有多少种大小的鱼可以放入这个鱼缸。

    输入数据包括3行.
    第一行为新放入鱼的尺寸范围minSize,maxSize(1 ≤ minSize,maxSize ≤ 1000),以空格分隔。
    第二行为鱼缸里面已经有鱼的数量n(1 ≤ n ≤ 50)
    第三行为已经有的鱼的大小fishSize[i](1 ≤ fishSize[i] ≤ 1000),以空格分隔。

    输出描述:
    输出有多少种大小的鱼可以放入这个鱼缸。考虑鱼的大小都是整数表示

    输入:
    1 12
    1
    1

    输出:
    3

    process.stdin.resume();
    process.stdin.setEncoding("utf8");
    process.stdin.on("data", function(chunk) {
        var datas = chunk.trim().split("
    ");  // 一行一行的读入数据
    
        var sizes = datas[0].trim().split(" ");  // 第一行的多个数据按空格划分开
        var minSize = parseInt(sizes[0]);        // 第一行的第一个数据
        var maxSize = parseInt(sizes[1]);        // 第一行的第二个数据
        
        var num = parseInt(datas[1]);  // 第二行的单个数据(鱼的数量)
        
        var size = datas[2].trim().split(" ");  // 第三行的多个数据按空格划分
        
        var fishSize=size.map(function(item){  // 对size数组用map里面的方法返回一个新数组
            return  parseInt(item);
        });
        
        var count = 0;
        for(var i = minSize;i<=maxSize;i++){
            var flag = false;
            for(var j = 0;j<num;j++){
                if((i<=fishSize[j]*10&&i>=fishSize[j]*2)||(10*i>=fishSize[j]&&2*i<=fishSize[j])){
                    flag = true;
                    break;
                }
            }
            if(!flag){
                count++;
            }
        }
        console.log(count);
    });
    
    

    输入单个数字

    求质数因子:
    功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 )
    最后一个数后面也要有空格

    输入:
    180

    输出:
    2 2 3 3 5

    var readline = require('readline');
    const rl = readline.createInterface({
        input: process.stdin,
        output: process.stdout,
        ternimal:false
    });
    
    rl.on('line', function(line){
       console.log(calc(line));
    });
    
    function calc(num) {
        var arr = [];
        while(num !== 1){
            for(var i = 2;i <= num; i++){
                if(num % i === 0){
                    arr.push(i+" ");
                    num = num / i;
                    break;
                }
            }
        }
       return arr.join('');
    }
    
    

    单行文本输入

    //系统函数引用
    var readline = require('readline');
    const rl = readline.createInterface({
            input: process.stdin,
            output: process.stdout
    });
    //////////////////////////////////////
    rl.on('line', function(line){
       var tokens = line.split(' ');
        console.log(parseInt(tokens[0]) + parseInt(tokens[1]));
    });
    
  • 相关阅读:
    Boost线程库学习笔记
    sizeof运算符
    用法char ch=getchar()正确性详解
    C语言中的缓冲输出
    算术运算的溢出行为 and 一个数内存中表示1的个数
    ARP、RARP、ICMP、ping
    http和https协议
    关于宋词频率统计(R语言)
    Backbone.js API中文文档
    腾讯小Q书桌图标怎么实现的啊?
  • 原文地址:https://www.cnblogs.com/Yfling/p/7483504.html
Copyright © 2011-2022 走看看