牛客网编程初学者入门训练题解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题解)】过去的过去就是未来的未来。
本部分完。
推荐阅读
- 数据结构与算法|数据结构之什么是算法()
- 前端|JS的内存管理
- 前端|Vue的开发路程
- JavaScript|深入理解JavaScript执行栈
- 微软|9个值得推荐的 VUE3 UI 框架
- JavaScript|JavaScript知识——DOM增删改、操作内联样式
- 原型链
- vue-评分-前后台|Vue中事件总线EventBus的应用(三)定义全局事件——实例之main.js-创建事件总线、$emit-发布事件、$on-订阅事件、$off-去除事件
- 精选毕业设计完整源码+论文|asp毕业设计——基于C#+asp.net+cs的CS应用程序平台多语种技术设计与实现(毕业论文+程序源码)——平台多语种技术