题目来源于牛客题霸,在javascript node模式下编写
一、计数问题
描述
试计算在区间1 到n 的所有整数中,数字x(0 ≤ x ≤ 9)共出现了多少次?
例如,在1到11 中,即在1、2、3、4、5、6、7、8、9、10、11 中,数字1 出现了4 次。
输入描述:
输入共1行,包含2个整数n、x,之间用一个空格隔开。
输出描述:
输出共1行,包含一个整数,表示x出现的次数。
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;void async function () {// Write your code herewhile(line = await readline()){let tokens = line.split(' ');let n = parseInt(tokens[0]);let x = parseInt(tokens[1]);var count=0;for(var i=1;i<=n;i++){var num=String(i);for(var j=0;j<num.length;j++){if(num[j]==x){count++;}}}console.log(count);}
}()
二、最高分与最低分之差
描述
输入n个成绩,换行输出n个成绩中最高分数和最低分数的差。
输入描述:
两行,第一行为n,表示n个成绩,不会大于10000。
第二行为n个成绩(整数表示,范围0~100),以空格隔开。
输出描述:
一行,输出n个成绩中最高分数和最低分数的差。
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;void async function () {// Write your code herelet n=await readline();let num=await readline();let arr=num.split(' ');console.log(Math.max.apply(null,arr)-Math.min.apply(null,arr));}()
三、有序序列判断
描述
输入一个整数序列,判断是否是有序序列,有序,指序列中的整数从小到大排序或者从大到小排序(相同元素也视为有序)。
数据范围: 3≤n≤50 3≤n≤50 序列中的值都满足 1≤val≤100 1≤val≤100
输入描述:
第一行输入一个整数N(3≤N≤50)。
第二行输入N个整数,用空格分隔N个整数。
输出描述:
输出为一行,如果序列有序输出sorted,否则输出unsorted。
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;void async function () {// Write your code herelet n = await readline();let num = await readline();let arr=num.split(' ').map(Number);let big=0;let small=0;let equal=0;for(let i=arr.length-1;i>0;i--){if(arr[i]>arr[i-1]){big+=1;}else if(arr[i]==arr[i-1]){equal+=1;}else if(arr[i]<arr[i-1]){small+=1;}}if((big+equal)==(arr.length-1)) {console.log('sorted');}else if((small+equal)==(arr.length-1)){console.log('sorted');}else{console.log('unsorted');}}()
四、序列中整数去重
描述
输入n个整数的序列,要求对这个序列进行去重操作。所谓去重,是指对这个序列中每个重复出现的整数,只保留该数第一次出现的位置,删除其余位置。
输入描述:
输入包含两行,第一行包含一个正整数n(1 ≤ n ≤ 1000),表示第二行序列中数字的个数;第二行包含n个整数(范围1~5000),用空格分隔。
输出描述:
输出为一行,按照输入的顺序输出去重之后的数字,用空格分隔。
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;void async function () {// Write your code heren = await readline();line = await readline();let tokens = line.split(' ');let arr=new Array();for(var i=0;i<tokens.length;i++){arr.push(tokens[i]);}for(var i=0;i<arr.length-1;i++){for(var j=i+1;j<arr.length;j++){if(arr[i]==arr[j]){arr.splice(j,1);j--;}}}var str1='';for(var i=0;i<arr.length;i++){str1+=arr[i]+' ';}console.log(str1);}()
五、班级成绩输出
描述
输入一个班级5个学生各5科成绩,输出5个学生各5科成绩及总分。
输入描述:
五行,每行输入一个学生各5科成绩(浮点数表示,范围0.0~100.0),用空格分隔。
输出描述:
五行,按照输入顺序每行输出一个学生的5科成绩及总分(小数点保留1位),用空格分隔。
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;void async function () {// Write your code herewhile ((line = await readline())) {let arr = line.split(" ");let sum = 0;for (let i = 0; i < arr.length; i++) {arr[i]=parseFloat(arr[i]).toFixed(1);sum += parseFloat(arr[i]);}arr.push(sum);// arr.push(Math.ceil(sum).toFixed(1));console.log(arr.join(' '));}}()