牛客网编程初学者入门训练题解JavaScript版本
- 编程初学者入门训练第101-110题解答(js)
- 101.班级成绩输入输出
- 102.矩阵元素定位
- 104.最高身高
- 106.上三角矩阵判定
- 109.杨辉三角
- 110.井字棋
编程初学者入门训练第101-110题解答(js)
本文章尽量用简洁的代码去完成题目要求,话不多说,上代码(因为js语言的限制,所以有些题是骚操作,娱乐而已),后期会不断更新的。
注:有些题找不见了,把有的题写了一下。
代码链接: 编程初学者入门101-110T代码.
101.班级成绩输入输出
题目描述:输入一个班级5个学生各5科成绩,输出5个学生各5科成绩及总分。
输入描述:五行,每行输入一个学生各5科成绩(浮点数表示,范围0.0~100.0),用空格分隔。
输出描述:五行,按照输入顺序每行输出一个学生的5科成绩及总分(小数点保留1位),用空格分隔。
for(let i=0;i<5;i++){let arr = readline().split(\' \')let sum = 0;let str = \'\';for(let j=0;j<5;j++){sum += Number(arr[j])str += Number(arr[j]).toFixed(1)+ \' \'}console.log(str + sum.toFixed(1))}
102.矩阵元素定位
题目描述:KiKi得到了一个n行m列的矩阵,现在他想知道第x行第y列的值是多少,请你帮助他完成这个任务。
输入描述:第一行包含两个数n和m,表示这个矩阵包含n行m列。从2到n+1行,每行输入m个整数(范围-2**31~2^31-1),用空格分隔,共输入n*m个数,表示矩阵中的元素。接下来一行输入x和y,用空格分隔,表示KiKi想得到的元素的位置。(1≤x≤n≤10,1≤y≤m≤10)
输出描述:一行,输出一个整数值,为KiKi想知道的值。
let str = readline().split(\' \')let n = parseInt(str[0])let m = parseInt(str[1])let arr=[]for(let i=0;i<n;i++){arr[i]=readline().split(\' \')}let s = readline().split(\' \')let x = parseInt(s[0])let y = parseInt(s[1])console.log(arr[x-1][y-1])
104.最高身高
题目描述:KiKi想从n行m列的方阵队列中找到身高最高的人的位置,请你帮助他完成这个任务。
输入描述:第一行包含两个整数n和m,表示这个方阵队列包含n行m列。从2到n+1行,每行输入m个整数(范围-2**31~2^31-1),用空格分隔,共输入n*m个数,表示方阵中的所有人的身高(保证输入身高都不相同)。(1≤x≤n≤10,1≤y≤m≤10)
输出描述:一行,输出两个整数,用空格分隔,表示方阵中身高最高的人所在的行号和列号。
let str = readline().split(\' \')let n = parseInt(str[0])let m = parseInt(str[1])let arr=[]let max =0let pos=[]for(let i=0;i<n;i++){arr[i]=readline().split(\' \')for(let j=0;j<m;j++){if(max<arr[i][j]){max = arr[i][j]pos = [i+1,j+1]}}}console.log(pos.join(\' \'))
106.上三角矩阵判定
题目描述:KiKi想知道一个n阶方矩是否为上三角矩阵,请帮他编程判定。上三角矩阵即主对角线以下的元素都为0的矩阵,主对角线为从矩阵的左上角至右下角的连线。
输入描述:第一行包含一个整数n,表示一个方阵包含n行n列,用空格分隔。 (1≤n≤10)
从2到n+1行,每行输入n个整数(范围-2**31~2^31-1),用空格分隔,共输入n*n个数。
输出描述:一行,如果输入方阵是上三角矩阵输出\”YES\”并换行,否则输出\”NO\”并换行。
let n = parseInt(readline())let arr=[]let flag=1for(let i=0;i<n;i++){arr[i]=[]arr[i]=readline().split(\' \')}for(let i=1;i<n;i++){for(let j=0;j<i;j++){if(arr[i][j]!=0){flag= 0;}}}if(flag){console.log(\'YES\')}else{console.log(\'NO\')}
109.杨辉三角
题目描述:KiKi知道什么叫杨辉三角之后对杨辉三角产生了浓厚的兴趣,他想知道杨辉三角的前n行,请编程帮他解答。杨辉三角,本质上是二项式(a+b)的n次方展开后各项的系数排成的三角形。其性质包括:每行的端点数为1, 一个数也为1;每个数等于它左上方和上方的两数之和。
输入描述:第一行包含一个整数数n。 (1≤n≤30)。
输出描述:包含n行,为杨辉三角的前n行,每个数输出域宽为5。
let n = parseInt(readline())let arr = [];let str = \'\'for(let i=0;i<n;i++){arr[i] = [];for(let j=0;j<=i;j++){if(j==0||j==i){arr[i][j]=1;}else{arr[i][j] = arr[i-1][j] + arr[i-1][j-1]}let num = arr[i][j];let count = 0;while(num){num = Math.floor(num/10);count++;}if(count==1){str += \" \" +arr[i][j]}else if(count==2){str += \" \" +arr[i][j]}else if(count==3){str += \" \"+arr[i][j]}else if(count==4){str += \" \"+arr[i][j]}else{str = arr[i][j]}}str += \'\\n\'}console.log(str)
110.井字棋
题目描述:KiKi和BoBo玩 “井”字棋。也就是在九宫格中,只要任意行、列,或者任意对角线上面出现三个连续相同的棋子,就能获胜。请根据棋盘状态,判断当前输赢。
输入描述:三行三列的字符元素,代表棋盘状态,字符元素用空格分开,代表当前棋盘,其中元素为K代表KiKi玩家的棋子,为O表示没有棋子,为B代表BoBo玩家的棋子。
输出描述:如果KiKi获胜,输出“KiKi wins!”;
如果BoBo获胜,输出“BoBo wins!”;
如果没有获胜,输出“No winner!”。
let a = [];let aa = [];let n = 3;while(n--){let b = readline().split(\" \");a.push(b);let res = b[0]+b[1]+b[2];aa.push(res);}let res= \"\";res = a[0][0] + a[1][0] + a[2][0]; aa.push(res);res = a[0][1] + a[1][1] + a[2][1]; aa.push(res);res = a[0][2] + a[1][2] + a[2][2]; aa.push(res);res = a[0][0] + a[1][1] + a[2][2]; aa.push(res);res = a[0][2] + a[1][1] + a[2][0]; aa.push(res);let f = false;for(let i=0;i<aa.length;i++){if(aa[i] == \"KKK\") {console.log(\"KiKi wins!\"); f = true; break;}if(aa[i] == \"BBB\") {console.log(\"BoBo wins!\"); f = true; break;}}if(!f) console.log(\"No winner!\")
从不曾离开的是江湖,越陷越深的是江湖。
未完待续,Loading…