CodeWars: square every digit

codewars

這幾天遇到程式的面試題目,想說也可以一併將解法分享٩(^ᴗ^)۶
題目:Codewars - Square Every Digit
一樣會用RubyPythonJavaScript三個語言來解題,讓我們開始吧!

這次的題目就是將輸入的內容拆開為陣列,各別平方後,再加入組合起來就能得到答案了٩(^ᴗ^)۶

Ruby

1
2
3
def square_digits(num)
num.to_s.chars.map { |digit| digit.to_i ** 2}.join.to_i
end

聽到各別兩個字,腦中一定會自動聯想到map,這題也是使用map個字平方後再使用join組合成字串後,再使用to_i返還數字

Python

1
2
def square_digits(num):
return int(''.join(str(int(digit)**2) for digit in str(num)))

python則是寫法稍微不同,可以使用for digit in str(num)即可

JavaScript

1
2
3
function squareDigits(num) {
return parseInt(num.toString().split('').map(digit => parseInt(digit)**2).join(''), 10);
}

Comments