JavaScript_牛客网_编程初学者入门训练(131-140题解)


牛客网编程初学者入门训练题解JavaScript版本

  • 编程初学者入门训练第131-140题解答(js)
      • 131.KiKi学程序设计基础
      • 132.KiKi算期末成绩
      • 133.KiKi说祝福语
      • 134.KiKi的最高分
      • 135.KiKi求质数个数
      • 136.KiKi去重整数并排序
      • 137.KiKi判断上三角矩阵
      • 138.KiKi学结构体和指针
      • 139.KiKi定义电子日历类
      • 140.KiKi设计类继承

编程初学者入门训练第131-140题解答(js) 本文章尽量用简洁的代码去完成题目要求,话不多说,上代码(因为js语言的限制,所以有些题是骚操作,娱乐而已),后期会不断更新的。
注:有些题找不见了,把有的题写了一下。
代码链接: 编程初学者入门131-140T代码.
131.KiKi学程序设计基础
题目描述:BoBo老师教了KiKi学习程序设计基础,他知道C++是带类的C语言,这个“++”主要包含三部分内容:对C语言进行语法上的扩展、面向对象(封装、继承和多态),STL(即模板)。这学期KiKi学习了C和C++,学好他们,其他编程语言都可以很轻松掌握。C和C++的输入有区别,请帮KiKi输出C和C++输出Hello world的代码。
问题输入 :无
问题输出 :printf(“Hello world!\n”);
cout << “Hello world!” << endl;
console.log('printf("Hello world!\\n"); ') console.log('cout << "Hello world!" << endl; ')

132.KiKi算期末成绩
题目描述:KiKi这学期努力学习程序设计基础,要期末考试了,BoBo老师告诉他,总成绩包括四个部分,如下:
总成绩 = 实验成绩 * 20% + 课堂表现成绩 * 10% + 过程考核成绩 * 20% + 期末上机考试成绩 * 50%,现在输入KiKi的各项成绩,请计算KiKi的总成绩。
问题输入 :一行,包括四个整数(百分制),用空格分隔,分别表示实验成绩,课堂表现成绩,过程考核成绩,期末上机考试成绩。
问题输出 :一行,总成绩,保留小数点一位。
let sc = readline(); let s = sc.split(' '); let a =(parseInt(s[0])*0.2+parseInt(s[1])*0.1+parseInt(s[2])*0.2+parseInt(s[3])*0.5).toFixed(1); console.log(a)

133.KiKi说祝福语
题目描述:2020年来到了,KiKi要对他的n位好朋友说n遍”Happy new year!Good luck!”的祝福语。
问题输入 :输入只有一行,其中含有一个正整数 n(1≤n≤20),代表KiKi说祝福话的遍数。
问题输出 :输出 n行"Happy new year!Good luck!"。
let n = readline(); for(let i=0; i

134.KiKi的最高分
题目描述:KiKi知道了大一三科比较重要课程的分数,包括:程序设计基础,高数,英语,请编程帮他找到三科中的最高分。
问题输入 :一行,三个整数,用空格分隔,代表三科成绩。
问题输出 :一行,一个整数,代表输入三科分数中的最高分数。
let str = readline(); str = str.split(' '); console.log(Math.max(...str))

135.KiKi求质数个数
题目描述:KiKi知道了什么是质数(只能被1和他自身整除的数),他现在想知道所有三位整数中,有多少个质数。
问题输入 :无
问题输出 :一行,一个整数,表示所有三位整数中,有多少个质数。
let num=0; for (let i=100; i<=999; i++){ for (let j=2; j< Math.floor(i**0.5)+1; j++){ if(i%j==0){ num++; break; } } } console.log(900-num);

136.KiKi去重整数并排序
题目描述:给定一个整数序列,KiKi想把其中的重复的整数去掉,并将去重后的序列从小到达排序输出。
问题输入 :第一行,输入一个整数n,表示序列有n个整数。
第二行输入n个整数(每个整数大于等于1,小于等于1000),整数之间用空格分隔。
问题输出 :去重并且从小到大排列的整数序列,整数之间用空格分隔。
let n = readline(); let str = readline(); str = str.split(' '); str.sort(function(a,b){return a-b}); for(let i=0; i.length-1; i++){ if(str[i]==str[i+1]){ str.splice(i,1); i = i-1; } } let arr =[]; for(let k=0; k.length; k++){ if(str[k]>=1 && str[k]<=1000){ arr.push(str[k]); } } console.log(arr.join(' '))

137.KiKi判断上三角矩阵
题目描述:KiKi想知道一个n阶方矩是否为上三角矩阵,请帮他编程判定。上三角矩阵即主对角线以下的元素都为0的矩阵,主对角线为从矩阵的左上角至右下角的连线。
问题输入 :第一行包含一个整数n,表示一个方阵包含n行n列,用空格分隔。 (2≤n≤10)
从2到n+1行,每行输入n个整数(范围-231~231-1),用空格分隔,共输入n*n个数。
问题输出 :一行,如果输入方阵是上三角矩阵输出"YES"并换行,否则输出"NO"并换行。
while(line = readline()){ let n = parseInt(line); let res ="" for(let i=0; i

138.KiKi学结构体和指针
题目描述:KiKi学习了结构体和指针,他了解了结构体类型可以定义包含多个不同类型成员,而指针本质是内存地址,是引用数据的另外一种方式。现在他想将多个输入的数据通过结构体和指针的方式连接在一起,形成一个单向链表,即:每个结点是结构体类型,包括整型数据成员(data)和结构体指针类型成员(next),每个结点的指针部分指向下一个输入的结点。具体建立过程如下:先输入n个整数,按照数据输入的顺序建立一个带头结点的单链表,再输入一个数据m,将单链表中的值为m的结点全部删除。输出删除后的单链表信息。
问题输入 :包括三行:
第一行输入数据个数n (3≤n≤100);
第二行依次输入n个整数,用空格分隔;
第三行输入欲删除数据m。
问题输出 :包括两行:
第一行输出完成删除后的单链表长度;
第二行依次输出完成删除后的单链表数据。
let n = readline(); let str = readline(); let r = readline(); str = str.split(' '); let arr=[]; let count = 0; for(let i =0; i

139.KiKi定义电子日历类
题目描述:KiKi学习了面向对象技术,学会了通过封装属性(变量)和行为(函数)定义类,现在他要设计一个电子日历类TDate。
它有3个私有数据成员:Month,Day,Year和若干个公有成员函数,要求:
(1)带有默认形参值的构造函数,默认值为0, 0, 0;
(2)输出日期函数,用“日/月/年”格式输出日期;
(3)设置日期函数,从键盘输入年、月、日。
问题输入 :一行,三个整数,用空格分隔,分别表示年、月、日。
问题输出 :一行,用“日/月/年”格式输出日期。
let date = readline(); date = date.split(' '); let str; let year = date[0]; let month = date[1]; let day = date[2]; str = day +'/'+month+'/'+year; console.log(str)

140.KiKi设计类继承
题目描述:KiKi理解了继承可以让代码重用,他现在定义一个基类shape,私有数据为坐标点x,y, 由它派生Rectangle类和Circle类,它们都有成员函数GetArea()求面积。派生类Rectangle类有数据:矩形的长和宽;派生类Circle类有数据:圆的半径。Rectangle类又派生正方形Square类,定义各类并测试。输入三组数据,分别是矩形的长和宽、圆的半径、正方形的边长,输出三组数据,分别是矩形、圆、正方形的面积。圆周率按3.14计算。
问题输入 :输入三行,
第一行为矩形的长和宽,
第二行为圆的半径,
第三行为正方形的边长。
问题输出 :三行,分别是矩形、圆、正方形的面积。
class Shape { constructor(r){ this.r = r; } } class Area extends Shape { constructor(x,y,r) { super(r); this.x =x; this.y =y; } Rectangle(){ return this.x*this.y; } Circle(){ return 3.14*this.r*this.r; } Square(){ return this.r*this.r; }}let m = readline(); m = m.split(' '); let x = m[0]; let y = m[1]; let r = readline(); let a = readline(); let rec = new Area(x,y,0); console.log(rec.Rectangle()) let cir = new Area(0,0,r); let c =cir.Circle(); if(c%1==0){ console.log(c) }else{ c=Math.round(c*100)/100; console.log(c) }let squ = new Area(0,0,a); console.log(squ.Square())

【JavaScript_牛客网_编程初学者入门训练(131-140题解)】过去的过去就是未来的未来。
本部分完。

    推荐阅读