iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 8
0
Software Development

One Punch 一拳搞定前後端面試系列 第 8

[One Punch 一拳搞定前後端面試] DAY-08 - 樓梯測驗

樓梯測驗

這是一題常見的題目,算簡單,直接來看題目吧!

題目

請寫出一個方法(函式),給一個整數 n,則印出 n 階樓梯。

此文同時發佈於好讀版

Examples

ex1:
steps(2)

印出
'@ '
'@@'
------------------------
ex2:
steps(3)

印出
'@  '
'@@ '
'@@@'

老規矩,看解答前希望您可以先自己想想,解法不一樣也完全是可以的!

想法:

row: 橫的一列
col: 直的一欄位

想像成一個矩陣表格,

只要橫的第n個位置,大於直的第 m 個欄位數,就印出@
反之則印出空字串。

Java 解法

private static void steps(int n) {
		for (int row = 0; row < n; row++) {
		    String aStep = "";

		    for (int col = 0; col < n; col++) {
		      if (col <= row) {
		        aStep += "@";
		      } else {
		        aStep += " ";
		      }
		    }

		    System.out.println(aStep);
		  }
	}

JavaScript 解法

function steps(n) {
  for (let row = 0; row < n; row++) {
    let aStep = '';

    for (let col = 0; col < n; col++) {
      if (col <= row) {
        aStep += '@';
      } else {
        aStep += ' ';
      }
    }

    console.log(aStep);
  }
}

此文同時發佈於好讀版


上一篇
[One Punch 一拳搞定前後端面試] DAY-07 - 第一字母大寫
下一篇
[One Punch 一拳搞定前後端面試] DAY-09 - 字串搜尋
系列文
One Punch 一拳搞定前後端面試30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
open852134
iT邦新手 5 級 ‧ 2022-06-07 16:13:00

javascript 也可以透過 array.fill 的方式產生 @

const steps = (stepsAmount) => {
  let result = "";
  for (let i = 0; i <= stepsAmount; i++) {
    result += new Array(i).fill("@").join("") + "\n";
  }

  return result;
};

const result = steps(5);
console.log("result", result);

/*
"result" "
@
@@
@@@
@@@@
@@@@@
"
*/

我要留言

立即登入留言