使用 class 整数和多种方法将整数转换为八进制
Convert Integer to Octal using class Integer and multiple methods
我启动了一个脚本,但收到一条错误消息。我通常有正确的想法,但语法或格式不正确。
以下是给出的确切说明:
通过添加一个名为 to_oct 的方法来扩展 Integer class,其中 return 是一个表示八进制整数的字符串。我们将在 class 中讨论该算法。提示用户输入一个数字并输出由to_oct编辑的八进制字符串return。
为名为 "to_base" 的整数扩展添加另一个方法。此方法应采用一个参数,指示数字应转换为的基数。例如,要将数字 5 转换为二进制,我会调用 5.to_base(2)。这将 return “101”。假设 to_base 的输入参数是一个小于 10 的整数。to_base 应该 return 一个字符串,表示请求的数字基数中的小数。
#!/usr/bin/ruby
class Integer
def to_base(b)
string=""
while n > 0
string=(n%b)+string
n = n/b
end
end
def to_oct
n.to_base(8)
end
end
puts "Enter a number: "
n=gets.chomp
puts n.to_base(2)
当我 运行 脚本时,我得到了输入数字的提示,但随后我收到了这个错误消息:
tryagain.rb:16:in `<main>': undefined method `to_base' for "5":String (NoMethodError)
按照建议,做这样的事情:
class Integer
def to_base b
to_s b #same as self.to_s(b)
end
def to_oct
to_base 8 #same as self.to_base(8)
end
end
5.to_base 2 #=> "101"
65.to_oct #=> "101"
我启动了一个脚本,但收到一条错误消息。我通常有正确的想法,但语法或格式不正确。
以下是给出的确切说明:
通过添加一个名为 to_oct 的方法来扩展 Integer class,其中 return 是一个表示八进制整数的字符串。我们将在 class 中讨论该算法。提示用户输入一个数字并输出由to_oct编辑的八进制字符串return。
为名为 "to_base" 的整数扩展添加另一个方法。此方法应采用一个参数,指示数字应转换为的基数。例如,要将数字 5 转换为二进制,我会调用 5.to_base(2)。这将 return “101”。假设 to_base 的输入参数是一个小于 10 的整数。to_base 应该 return 一个字符串,表示请求的数字基数中的小数。
#!/usr/bin/ruby
class Integer
def to_base(b)
string=""
while n > 0
string=(n%b)+string
n = n/b
end
end
def to_oct
n.to_base(8)
end
end
puts "Enter a number: "
n=gets.chomp
puts n.to_base(2)
当我 运行 脚本时,我得到了输入数字的提示,但随后我收到了这个错误消息:
tryagain.rb:16:in `<main>': undefined method `to_base' for "5":String (NoMethodError)
按照建议,做这样的事情:
class Integer
def to_base b
to_s b #same as self.to_s(b)
end
def to_oct
to_base 8 #same as self.to_base(8)
end
end
5.to_base 2 #=> "101"
65.to_oct #=> "101"