牛客网编程初学者入门训练题解JavaScript版本
- 编程初学者入门训练第91-100题解答(js)
- 92.逆序输出
- 94.N个数之和
- 95.最高分与最低分之差
- 96.有序序列判断
- 97.有序序列插入一个整数
- 98.序列中删除指定数字
- 99.序列中整数去重
- 100.有序序列合并
编程初学者入门训练第91-100题解答(js)
本文章尽量用简洁的代码去完成题目要求,话不多说,上代码(因为js语言的限制,所以有些题是骚操作,娱乐而已),后期会不断更新的。
注:有些题找不见了,把有的题写了一下。
代码链接: 编程初学者入门91-100T代码.
92.逆序输出
题目描述:输入10个整数,要求按输入时的逆序把这10个数打印出来。逆序输出,就是按照输入相反的顺序打印这10个数。
输入描述:一行,输入10个整数(范围-2**31~2^31-1),用空格分隔。
输出描述:一行,逆序输出输入的10个整数,用空格分隔。
let str = readline().split(\' \')let arr = []for(let i=0;i<str.length;i++){arr.push(Number(str[i]))}arr.reverse()console.log(arr.join(\' \'))
94.N个数之和
题目描述:输入数字N,然后输入N个数,计算这N个数的和。
输入描述:第一行输入一个整数N(0≤N≤50),第二行输入用空格分隔的N个整数。
输出描述:输出为一行,为第二行输入的“N个整数之和”的计算结果。
let n = parseInt(readline())let str = readline().split(\' \')let sum =0for(let i=0;i<str.length;i++){sum += Number(str[i])}console.log(sum)
95.最高分与最低分之差
题目描述:输入n个成绩,换行输出n个成绩中最高分数和最低分数的差。
输入描述:两行,第一行为n,表示n个成绩,不会大于10000。
第二行为n个成绩(整数表示,范围0~100),以空格隔开。
输出描述:一行,输出n个成绩中最高分数和最低分数的差。
let n = parseInt(readline())let str = readline().split(\' \')let arr =[]for(let i=0;i<str.length;i++){arr.push(Number(str[i]))}arr.sort(function(a,b){return b-a});let max = arr[0]let min = arr[arr.length-1]console.log(max-min)
96.有序序列判断
题目描述:输入一个整数序列,判断是否是有序序列,有序,指序列中的整数从小到大排序或者从大到小排序。
输入描述:第一行输入一个整数N(3≤N≤50)。
第二行输入N个整数,用空格分隔N个整数。
输出描述:输出为一行,如果序列有序输出sorted,否则输出unsorted。
let n = parseInt(readline())let str = readline().split(\' \')let flag = 1;if(n<=2){console.log(\'sorted\')}else{if(Number(str[0])<Number(str[1])){for(let i=1;i<n-1;i++){if(Number(str[i])>Number(str[i+1])){console.log(\'unsorted\')flag = 0;break;}}}else{for(let i=1;i<str.length-1;i++){if(Number(str[i])<Number(str[i+1])){console.log(\'unsorted\')flag = 0;break;}}}if(flag){console.log(\'sorted\')}}
97.有序序列插入一个整数
题目描述:有一个有序数字序列,从小到大排序,将一个新输入的数插入到序列中,保证插入新数后,序列仍然是升序。
输入描述:第一行输入一个整数N(0≤N≤50)。
第二行输入N个升序排列的整数,输入用空格分隔的N个整数。
第三行输入想要进行插入的一个整数。
输出描述:输出为一行,N+1个有序排列的整数。
let n = parseInt(readline())let str = readline().split(\' \')let m = parseInt(readline())let arr = []if(m<Number(str[0])){arr.push(m)for(let i=0;i<str.length;i++){arr.push(Number(str[i]))}console.log(arr.join(\' \'))}else if(m>Number(str[n-1])){for(let i=0;i<str.length;i++){arr.push(Number(str[i]))}arr.push(m)console.log(arr.join(\' \'))}else{for(let i=0;i<n;i++){if(m>=Number(str[i])&&m<Number(str[i+1])){arr.push(Number(str[i]));arr.push(m);}else{arr.push(Number(str[i]));}}console.log(arr.join(\' \'))}
98.序列中删除指定数字
题目描述:有一个整数序列(可能有重复的整数),现删除指定的某一个整数,输出删除指定数字之后的序列,序列中未被删除数字的前后位置没有发生改变。
输入描述:第一行输入一个整数(0≤N≤50)。
第二行输入N个整数,输入用空格分隔的N个整数。
第三行输入想要进行删除的一个整数。
输出描述:输出为一行,删除指定数字之后的序列。
let n = readline()let str = readline().split(\' \')let m = readline()for(let i=0;i<n;i++){if(str[i]==m){str.splice(i,1)i = i-1}}console.log(str.join(\' \'))
99.序列中整数去重
题目描述:输入n个整数的序列,要求对这个序列进行去重操作。所谓去重,是指对这个序列中每个重复出现的整数,只保留该数第一次出现的位置,删除其余位置。
输入描述:输入包含两行,第一行包含一个正整数n(1 ≤ n ≤ 1000),表示第二行序列中数字的个数;第二行包含n个整数(范围1~5000),用空格分隔。
输出描述:输出为一行,按照输入的顺序输出去重之后的数字,用空格分隔。
let n = readline()let str = readline().split(\' \')for(let i= n-1;i>=0;i--){if(str.slice(0,i).indexOf(str[i])>=0){str.splice(i,1)}}console.log(str.join(\' \'))
100.有序序列合并
题目描述:输入两个升序排列的序列,将两个序列合并为一个有序序列并输出。
输入描述:输入包含三行,
第一行包含两个正整数n, m(1 ≤ n,m ≤ 100),用空格分隔。n表示第二行第一个升序序列中数字的个数,m表示第三行第二个升序序列中数字的个数。
第二行包含n个整数(范围1~5000),用空格分隔。
第三行包含m个整数(范围1~5000),用空格分隔。
输出描述:输出为一行,输出长度为n+m的升序序列,即长度为n的升序序列和长度为m的升序序列中的元素重新进行升序序列排列合并。
let str = readline().split(\' \')let m = Number(str[0])let n = Number(str[1])let arr1 = readline().split(\' \')let arr2 = readline().split(\' \')let arr = []for(let i=0;i<m;i++){arr.push(arr1[i])}for(let j=0;j<n;j++){arr.push(arr2[j])}arr.sort(function(a,b){return a-b});console.log(arr.join(\' \'))
二十年前有个苍老的声音:“我会原谅你们的,因为你们还年轻,因为你们还不懂。”*
未完待续,Loading…