【发布时间】:2017-01-23 14:01:00
【问题描述】:
我尝试解决代码大战中的一些任务。我必须创建方法,它返回列标题(发生在 Excel 中)。该方法有一个参数,它是数字。例如:
def get_column_title(n)
//code
end
如果 n = 1。它应该返回 A。
测试用例:
Test.assert_equals(get_column_title(1), "A")
Test.assert_equals(get_column_title(26), "Z")
Test.assert_equals(get_column_title(52), "AZ")
Test.assert_equals(get_column_title(53), "BA")
Test.assert_equals(get_column_title(702), "ZZ")
我有什么:
def number_values
{
1 => 'A', 2 => 'B', 3 => 'C', 4 => 'D', 5 => 'E', 6 => 'F', 7 => 'G',
8 => 'H', 9 => 'I', 10 => 'J', 11 => 'K', 12 => 'L', 13 => 'M', 14 => 'N',
15 => 'O', 16 => 'P', 17 => 'Q', 18 => 'R', 19 => 'S', 20 => 'T',
21 => 'U', 22 => 'V', 23 => 'W', 24 => 'X', 25 => 'Y', 26 => 'Z'
}
end
def translate_values
if @n <= 26
number_values[@n-26*0]
elsif @n <= 52
'A'+ number_values[@n-26*1]
elsif @n <= 78
'B' + number_values[@n-26*2]
end
end
问题: 我不知道如何通过算法解决此任务。我想过在一个循环中将这个数字除以 26。 你能给我一些提示如何完成这项任务吗?
运动来源: codewars.com
【问题讨论】: