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<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())

过去的过去就是未来的未来。
本部分完。

你可能感兴趣的:(javascript)