牛客网编程初学者入门训练题解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<n;i++){console.log(\'Happy new year!Good luck!\')}
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<str.length-1;i++){if(str[i]==str[i+1]){str.splice(i,1);i = i-1;}}let arr =[];for(let k=0;k<str.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<n;i++){let line = readline();if(line.includes(\"0 \".repeat(i))){res+=\"YES\"}else{res+=\"NO\"}}if(res.includes(\"NO\")){console.log(\"NO\");}else{console.log(\"YES\");}}
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<n;i++){if(r==str[i]){count++;}else{arr.push(str[i]);}}console.log(n-count)console.log(arr.join(\' \'))
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())
过去的过去就是未来的未来。
本部分完。