Open Lichen5221 opened 3 years ago
自己試寫:
function solve(lines) {
let num = lines.split(' ')
console.log(num)
if (num[1] === '+') {
console.log(Number(num[0]) + Number(num[2]))
} else if (num[1] === '-') {
console.log(Number(num[0]) - Number(num[2]))
} else if (num[1] === '*') {
console.log(num[0] * num[2])
} else {
console.log(num[0] / num[2])
}
}
solve('3 * 4')
solve('5 - 3')
solve('3 + 2')
solve('10 / 5')
為了確保四個都可以運行全部寫了,然後就發現我原本寫的 + 有出現錯誤 XD,還好有測試。
老師解答:
let temp = lines[0].split(' ')
let a = Number(temp[0])
let b = Number(temp[2])
if (temp[1] === '+') {
console.log(a + b)
} else if (temp[1] === '-') {
console.log(a - b)
} else if (temp[1] === '*') {
console.log(a * b)
} else (temp[1] === '/') {
console.log(a / b)
}
差異:老師的比較簡潔。
自己試寫:
function res(str) {
let word = str.split('')
let w = ''
for(var i = str.length - 1; i >= 0; i--) {
w += str[i]
}
console.log(w)
if (str == w) {
console.log('True')
} else {
console.log('False')
}
}
res('cd121dc')
res('ac')
res('abbbba')
LIOJ 版本:
let word = lines[0]
let w = ''
for(var i = word.length - 1; i >= 0; i--) {
w += word[i]
}
if (word == w) {
console.log('True')
} else {
console.log('False')
}
老師解答:
let str = lines[0]
if (reverse(str) === str) {
console.log('True')
} else {
console.log('False')
}
function reverse(str) {
let result = ''
for (let i = str.length - 1; i >= 0; i--) {
result += str[i]
}
return result
}
差異:老師多一個 function 。然後我莫名不知道為什麼要把字串分割。
理解內建函式,較能理解並使用。
Project 5 介紹
LIOJ 1026:判斷等比數列
自己試寫:
好了我又要來跟 LIOJ 的判斷機制戰鬥了。
老實說我一點都不曉得我錯在哪,為什麼 node 可以執行但是 LIOJ 就是不行?
老師解法:
差異:我直接回傳字串,不可行嗎?看來 return 只能回傳數值。
LIOJ 1027:信用卡號驗證
自己試寫:
LIOJ 1028:生命靈數
自己試寫:
為了確保印出來的東西一樣還加爆 console.log ,而且避免上 LIOJ 再判斷錯誤,我從這題開始就直接仿造 LIOJ 的出題⋯⋯
老師解答: