算法面試-對整形數字翻轉
package number
fun main(args: Array) {
println("123 reverse: ${reverseNum(123)}")
println("8888 reverse: ${reverseNum(8888)}")
println("54456 reverse: ${reverseNum(54456)}")
println("1564654 reverse: ${reverseNum(1564654)}")
}
fun reverseNum(num: Int): Int {
//對n與10取餘數獲取第一位
//結果 = 結果* 10 + 這個餘數
//對n整除獲取下一個值
//終止條件: n = 0
var n = num
var res = 0
while (n != 0) {
var last = n % 10
res = 10 * res + last
n = n / 10
}
return res
}
fun reverseNumWithMath(num: Int): Int {
//對n與10取餘數獲取第一位
//結果 += 這個餘數 * 10^Math.log(n)
//對n整除獲取下一個值
//終止條件: n = 0
var n = num
var res = 0
while (n != 0) {
var last = n % 10
var power = Math.log10(n.toDouble()).toInt()
res += last * Math.pow(10.0, power.toDouble()).toInt()
n = n / 10
}
return res
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.