小言_互联网的博客

作业帮笔试

291人阅读  评论(0)

一:单行输入:

1 1(输入是"1 1")
2

while(line = relinesadline()){
    var lines = line.split(" ");
    var a = parseInt(lines[0]);
    var b = parseInt(lines[1]);
    print(a + b);
}

二:多行输入:(例子未定)

var n = parseInt(readline());
var ans = 0;
for(var i = 0; i < n; i ++){
    lines = readline().split(" ");
    for(var j = 0;j < lines.length; j ++){
        ans += parseInt(lines[j]);
    }
}
print(ans);

三:找出以下数组的最大差值:[1,100,40,50,30,20,100]

输入:[1,100,40,50,30,20,100]
输出:100

let line = readline();
line = line.split(",");
line[0] = line[0].slice(1);
line[line.length - 1] = line[line.length - 1].slice(0);
for(let i = 0; i < line.length; i ++){
    line[i] = parseInt(line[i]);
}
function func(arr) {
    let max = arr[0];
    let min = arr[0];
    let res = 0;
    for(let i = 1; i < arr.length; i ++){
        if(arr[i] > max){
            max = arr[i];
        }
        if(arr[i] < min) {
            min = arr[i];
        }
        res = max - min;
    }
    print(res);
}
func(line);

四:数组扁平化处理

输入:[ 1,2,[3,4,[5,6]],7,8]
输出:[1,2,3,4,5,6,7,8]

五种方法:
toString()、 递归、flat()、reduce()、扩展运算符

var arr = [[1,2],3];//比较局限,只适用于数字数组
 function func(arr){
    return arr.toString().split(",").map(function(item){
    return parseInt(item);
    })
 }
     console.log(func(arr));
[[1,2,[3,4,5]],7].flat(3)//浏览器亲测可用
function flatArray(arr){//递归实现,很直观
let result = [];
for(let i = 0;i < arr.length; i ++){
result = result.concat(flatArray(arr[i]))
  }
 return result;
};
 console.log(flatArray([[1,2],3]))
let line = readline();
let arr = JSON.parse(line.toString());
function flatArray(arr){
 //当数组中还有数组的话,递归调用flatArray函数(利用reduce扁平), 用concat连接,最终返回arr.reduce的返回值
    return arr.reduce((prev,current)=>{
        print prev.concat(Array.isArray(current) ? flatArray(current) : current);
    },[])
}
flatArray(arr);
console.log([...[1, 2], 3]);//用扩展运算符很简单
function flatArray4(arr){//对扩展运算符的封装
    while(arr.some(item => Array.isArray(item))){
        arr = [].concat(...arr)
    }
    return arr;
}
var arr = [[1,2],3];
console.log(flatArray(arr))

五:成绩排序:(如果成绩相同,则按照学号的大小来排序)

输入:
3(学生个数)
1 90
2 87
3 92
输出:
2 87
1 90
3 92

#include <stdio.h>
int main(){
    int i,j,tmp,n,flag,a[100][2];
    while(scanf("%d",&n)!=EOF)
    {
        for(i=0;i<n;i++)
        {
            scanf("%d %d",&a[i][0],&a[i][1]);
            tmp=a[i][1];
            flag=a[i][0];
            j=i-1;
            while(j>=0&&a[j][1]>tmp)
            {
                a[j+1][1]=a[j][1];
                a[j+1][0]=a[j][0];
                j--;
            }
            while(a[j][1]==tmp&&a[j][0]>flag)
            {
                a[j+1][0]=a[j][0];
                a[j+1][1]=a[j][1];
                j--;
            }
            a[j+1][1]=tmp;
            a[j+1][0]=flag;
        }
        for(i=0;i<n;i++)
            printf("%d %d\n",a[i][0],a[i][1]);
    }
    return 0;
}

转载:https://blog.csdn.net/lishundi/article/details/100569164
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场