AI智能
改变未来

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

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

  • 编程初学者入门训练第51-60题解答(js)
  • 51.三角形判断
  • 52.衡量人体胖瘦程度
  • 53.计算一元二次方程
  • 54.获得月份天数
  • 55.简单计算器
  • 58.直角三角形图案
  • 60.带空格直角三角形图案

编程初学者入门训练第51-60题解答(js)

本文章尽量用简洁的代码去完成题目要求,话不多说,上代码(因为js语言的限制,所以有些题是骚操作,娱乐而已),后期会不断更新的。
注:有些题找不见了,把有的题写了一下。
代码链接: 编程初学者入门51-60T代码.

51.三角形判断

题目描述:KiKi想知道已经给出的三条边a,b,c能否构成三角形,如果能构成三角形,判断三角形的类型(等边三角形、等腰三角形或普通三角形)。
输入描述:题目有多组输入数据,每一行输入三个a,b,c(0<a,b,c<1000),作为三角形的三个边,用空格分隔。
输出描述:针对每组输入数据,输出占一行,如果能构成三角形,等边三角形则输出“Equilateral triangle!”,等腰三角形则输出“Isosceles triangle!”,其余的三角形则输出“Ordinary triangle!”,反之输出“Not a triangle!”。

while(line=readline()){let lines = line.split(/[\\n]/);for(let i =0;i<lines.length;i++){let r = lines[i].split(\' \');let a = Number(r[0]);let b = Number(r[1]);let c = Number(r[2]);if(a+b>c && Math.abs(a-b)<c){if(a == b&&b==c){console.log(\"Equilateral triangle!\")}else if(a==b||a==c||b==c){console.log(\"Isosceles triangle!\")}else{console.log(\"Ordinary triangle!\")}}else{console.log(\"Not a triangle!\")}}}

52.衡量人体胖瘦程度

题目描述:在计算BMI(BodyMassIndex ,身体质量指数)的案例基础上,判断人体胖瘦程度。
输入描述:多组输入,每一行包括两个整数,用空格隔开,分别为体重(公斤)和身高(厘米)。
输出描述:针对每行输入,输出为一行,人体胖瘦程度,即分类。

while(line=readline()){let lines = line.split(/[\\n]/);for(let i =0;i<lines.length;i++){let r = lines[i].split(\' \');let a = Number(r[0]);let b = Number(r[1]);console.log(BMI(a,b));}}function BMI(h,w){let bim = h/Math.pow(w/100,2);if(bim<18.5){return \'Underweight\';}else if(bim>=18.5 &&bim<=23.9){return \'Normal\';}else if(bim>23.9 &&bim<=27.9){return \'Overweight\';}else{return \'Obese\';}}

53.计算一元二次方程

题目描述:从键盘输入a, b, c的值,编程计算并输出一元二次方程ax^2 + bx + c = 0的根,当a = 0时,输出“Not quadratic equation”,当a ≠ 0时,根据△ = b2 – 4ac的三种情况计算并输出方程的根。
输入描述:多组输入,一行,包含三个浮点数a, b, c,以一个空格分隔,表示一元二次方程ax^2 + bx + c = 0的系数。
输出描述:针对每组输入,输出一行,输出一元二次方程ax^2 + bx +c = 0的根的情况。
如果a = 0,输出“Not quadratic equation”;
如果a ≠ 0,分三种情况:
△ = 0,则两个实根相等,输出形式为:x1=x2=…。
△ > 0,则两个实根不等,输出形式为:x1=…;x2=…,其中x1 <= x2。
△ < 0,则有两个虚根,则输出:x1=实部-虚部i;x2=实部+虚部i,即x1的虚部系数小于等于x2的虚部系数,实部为0时不可省略。实部= -b / (2a),虚部= sqrt(-△ ) / (2a)

所有实数部分要求精确到小数点后2位,数字、符号之间没有空格。

while(line=readline()){while(line=readline()){let lines = line.split(/[\\n]/);for(let i =0;i<lines.length;i++){let r = lines[i].split(\' \');let a = Number(r[0]);let b = Number(r[1]);let c = Number(r[2]);if(a == 0){console.log(\"Not quadratic equation\")}else{let r = -b/(2*a)if(Math.pow(b,2)==4*a*c){console.log(\'x1=x2=\'+r.toFixed(2))}else if(Math.pow(b,2)>4*a*c){let x = Math.sqrt(Math.pow(b,2)-4*a*c)/(2*a);console.log(\'x1=\'+(r-x).toFixed(2)+\';x2=\'+(r+x).toFixed(2))}else{let x = Math.sqrt(4*a*c-Math.pow(b,2))/(2*a);let m = r.toFixed(2)+\'-\'+x.toFixed(2)+\'i\';let n = r.toFixed(2)+\'+\'+x.toFixed(2)+\'i\';console.log(\'x1=\'+m+\';x2=\'+n)}}}}

54.获得月份天数

题目描述:KiKi想获得某年某月有多少天,请帮他编程实现。输入年份和月份,计算这一年这个月有多少天。
输入描述:多组输入,一行有两个整数,分别表示年份和月份,用空格分隔。
输出描述:针对每组输入,输出为一行,一个整数,表示这一年这个月有多少天。

while(line=readline()){let lines = line.split(/[\\n]/);for(let i =0;i<lines.length;i++){let r = lines[i].split(\' \');let a = Number(r[0]);let b = Number(r[1]);if(b==1||b==3||b==5||b==7||b==8||b==10||b==12){console.log(31);}else if(b==4||b==6||b==9||b==11){console.log(30);}else {if(a%100==0 && a%400==0 || a%4==0){console.log(29)}else{console.log(28)}}}}

55.简单计算器

题目描述:KiKi实现一个简单计算器,实现两个数的“加减乘除”运算,用户从键盘输入算式“操作数1运算符操作数2”,计算并输出表达式的值,如果输入的运算符号不包括在(+、-、、/)范围内,输出“Invalid operation!”。当运算符为除法运算,即“/”时。如果操作数2等于0.0,则输出“Wrong!Division by zero!”
输入描述:多组输入,一行,操作数1运算符操作数2(其中运算符号包括四种:+、-、、/)。
输出描述:
输出描述:针对每组输入,输出为一行。
如果操作数和运算符号均合法,则输出一个表达式,操作数1运算符操作数2=运算结果,各数小数点后均保留4位,数和符号之间没有空格。
如果输入的运算符号不包括在(+、-、*、/)范围内,输出“Invalid operation!”。当运算符为除法运算,即“/”时。
如果操作数2等于0.0,则输出“Wrong!Division by zero!”。

while(line=readline()){let lines = line.split(/[\\n]/);for(let i =0;i<lines.length;i++){let reg = /\\-|\\+|\\*|\\//g;let r = lines[i];if(reg.test(r)){let s = r.split(reg);let a = Number(s[0]);let b = Number(s[1]);let reg1 = /\\+/g;let reg2 = /\\-/g;let reg3 = /\\*/g;let reg4 = /\\//g;if(reg1.test(r)){console.log(a.toFixed(4)+\'+\'+b.toFixed(4)+\"=\"+(a+b).toFixed(4))}else if(reg2.test(r)){console.log(a.toFixed(4)+\'-\'+b.toFixed(4)+\"=\"+(a-b).toFixed(4))}else if(reg3.test(r)){console.log(a.toFixed(4)+\'*\'+b.toFixed(4)+\"=\"+(a*b).toFixed(4))}else{if( b==0){console.log(\'Wrong!Division by zero!\')}else{console.log(a.toFixed(4)+\'/\'+b.toFixed(4)+\"=\"+(a/b).toFixed(4))}}}else{console.log(\"Invalid operation!\")}}}

58.直角三角形图案

题目描述:KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“”组成的直角三角形图案。
输入描述:多组输入,一个整数(2~20),表示直角三角形直角边的长度,即“”的数量,也表示输出行数。
输出描述:针对每行输入,输出用“”组成的对应长度的直角三角形,每个“”后面有一个空格。

while(line=readline()){let lines = line.split(/[\\n]/);for(let i =0;i<lines.length;i++){let n = parseInt(lines[i]);if(n>=2&&n<=20){for(let i=0;i<n;i++){let str = \'\'for(let j=0;j<n;j++){if(j<=i){str += \'* \'}else{str += \'  \'}}console.log(str)}}}}

60.带空格直角三角形图案

题目描述:KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“”组成的带空格直角三角形图案。
输入描述:多组输入,一个整数(2~20),表示直角三角形直角边的长度,即“”的数量,也表示输出行数。
输出描述:针对每行输入,输出用“”组成的对应长度的直角三角形,每个“”后面有一个空格。

while(line=readline()){let lines = line.split(/[\\n]/);for(let i =0;i<lines.length;i++){let n = parseInt(lines[i]);if(n>=2&&n<=20){for(let i=0;i<n;i++){let str = \'\'for(let j=0;j<n;j++){if(j>=n-i-1){str += \'* \'}else{str += \'  \'}}console.log(str)}}}}

无情万般不能,苍天太残忍,相见注定要分。
未完待续,Loading…

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » JavaScript_牛客网_编程初学者入门训练(51-60题解)