铁人赛开场就决定是你了,Ruby 30 天刷题修行篇第一话

大家好,我叫 A Fei,目前是学习 Ruby 和 JavaScript 约三个月的新手。

在学习过程中,我特别喜欢去解题目,面对不同种类的题型,苦思出一套解法,当按下 Submit 键後,喷出测试通过的绿字真的很爽!(但大多时候是喷红字居多...)

此系列文主要记录我连续 30 天解题的思路和解答,并且分析其他「道友」的最佳解法,来了解自己不足的地方。使用的题库网站是「Codewars」,并给自己每天一小时的时间,在时限至少要解完一题。废话不多说,让我们看看今天的题目:


Implement a function that adds two numbers together and returns their sum in binary. The conversion can be done before, or after the addition.

The binary number returned should be a string.

Examples:

add_binary(1, 1) == "10" (1 + 1 = 2 in decimal or 10 in binary)
add_binary(5, 9) == "1110" (5 + 9 = 14 in decimal or 1110 in binary)

题目难度:7 kyu
类型:Binary
是否有在时限内回答正确:是

第一天先从简单的题目暖身。这题要我们把方法所带入的两个引数相加,回传「二进位制」(binary)的结果。我们需要考虑到两个重点,一是把 a + b 的和从十进位(decimal)转换成二进位,二是方法回传的资料型别是「字串」。

刚好,神奇语法师 Ruby 提供的整数转字串的 to_s() 方法,只要在括号中填入 radix (2~36),你就可以轻松地得到转成其他进位制的「字串」。

Ruby 官方文件参考

这里贴上我的答案:

def add_binary(a,b)
  (a + b).to_s(2)
end

因为题目不难,这里就不用分析其他「大大们」的解法了。铁人赛的首篇发文就到这,希望之後再忙都可以坚持完赛,加油!


<<:  Day3 — 前导:电晶体如何组成逻辑闸

>>:  【第十六天 - 动态规划 介绍】

Day 16-隔离框架 (isolation Framework) - NSubstitute 基本介绍 (核心技术-8)

NSubstitute 基本介绍与安装 NSubstitute(简称 NSub)是一套友善的 .NE...

关於补数与二进位运算

补数为何存在? 为了将减法以加法的形式进行实作,减少电路开销(省去减法器)。 补数的讨论 一般来说,...

Day 18 - MSSQL 基本 & 工具介绍

在提到MSSQL前,我们要先有对资料库的一些基本概念。 何谓资料库? 资料库就是储存资料的地方。但比...

[Day 19] Node http request

前言 今天来看看, node 怎麽进行一个 http request 正文 打开 http.js 这...

Command 命令模式

当一个请求 (request) 进入系统之後,通常我们就会立即的处理它。但如果我们不想这麽直接的去处...