D15_ Unit4


Posted by Christy on 2021-05-03

  • 我知道昨天錯在哪裡了,有兩個地方有問題:
    1. 函式裡面的變數不可以取做 i,因為上面的迴圈已經用過 i 了
    2. 函式裡面傳的參數不可以是陣列,因為這樣我就沒辦法執行「讓陣列第零位從 2 開始取餘數的這個迴圈」

題目:
給一個陣列[1, 7, 9, 15, 20],判斷陣列裡面的數是否質數,
如果是質數,輸出:Prime,否之則輸出 Composite; 1 要輸出 Composite
預期答案是
Composite
Prime
Composite
Composite
Composite

下面函式裡面的 i 應該有問題,但現在還看不出問題在哪
實際跑起來,輸出全部都是 Prime,好奇怪啊...

let arr = [1, 7, 9, 15, 20]

for (var i = 0; i < arr.length; i++) {
    if (isPrime(arr[i])) {
        console.log('Prime')
    } else {
        console.log('Composite')
    }
}

function isPrime(n) {
    if (arr[i] === 1) return false
    for (var a = 2; a < n; a++) { 
        if (arr[i] % a === 0) {
            return false
        }
    }
    return true
}

LIOJ 1021 好多星星

寫一個函式,接受一個參數 n,
n = 1,則輸出
*

n = 5,則輸出
*
**
***
****
*****

function PrintStar(n) {
    let star = ' '
    for (i = 1; i < n+1; i++) {
        star += '*'
        console.log(star)
    }
}

PrintStar(10)

LIOJ 1022 印出金字塔

這題明天研究

Unit4.6:實戰:九九乘法表

  • 這題首先我卡在不知道要怎麼把 1 2 = 2 印出來,後來想到應該要用字串把想印的東西包起來 `1 + '' + 2 + '=' + 1*2` 這樣就可以把東西印出來了
  • 雙層迴圈
for (let n=1; n<=9; n++) {
    for (let i=1; i<=9; i++) {
        console.log(n + '*'+ i + '=' + n*i)
    }
}

Unit4.7:實戰:印出 1-100 的平方數

把 1-100 裡面是平方數的數印出來

  • 在寫這題時我發現,我跟 while 迴圈非常不熟,我只會寫 for 迴圈而已...但仔細想想,他的語法不難
let i = 1 //設定初始值
while (i * i <=100) { //當 i 相乘小於 100
    console.log(i * i) //把數字印出來
    i++ //繼續下一個數字
}









Related Posts

由下到上:從 TCP/IP 開始談起

由下到上:從 TCP/IP 開始談起

HTTP 與 HTTPS? 加密?

HTTP 與 HTTPS? 加密?

淺談 AJAX、JSONP 和 CORS

淺談 AJAX、JSONP 和 CORS


Comments