- 我知道昨天錯在哪裡了,有兩個地方有問題:
- 函式裡面的變數不可以取做 i,因為上面的迴圈已經用過 i 了
- 函式裡面傳的參數不可以是陣列,因為這樣我就沒辦法執行「讓陣列第零位從 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++ //繼續下一個數字
}