我想从用户那里获取一个整数,并生成一个以给定整数开头的五个数字的序列,然后使用迭代将每个先前的数字乘以四。例如,如果我输入2
,则列表应为[2, 8, 32, 128, 512]
。
n = gets
i = 0
while i < 4
n = n * 4
p n
i = i + 1
end
答案 0 :(得分:0)
我不确定您是要创建一个数字数组以供以后使用还是要迭代。在下面的内容中,您可以用任何想要的内容替换puts备忘录,备忘录将包含您要查找的每个通行证的值。
s = 2
(s...(s+5)).reduce(s) do |memo, i|
puts memo
memo = memo * 4
end
答案 1 :(得分:0)
运行:
<Switch>
<div className="someclass">
<Header />
<Route exact path='users' component={Users} />
<Footer />
</div>
<Route component={NotFound} /> . ** This also doesn't work here **
</Switch>
输入:
(5 - 1).times.with_object([gets.to_i]){|i, a| a.push(a.last * 4)}
返回值:
2
答案 2 :(得分:-1)
有很多方法可以完成您所描述的内容。评论中和@Abhimanyu的其他答案中已经有一些实现。
我遇到的麻烦是迭代序列的值。我一直把它当作[2,2,2,2,2]
您的代码示例将不起作用,因为Kernel#gets
不会返回数字,而是一个String
后跟一个换行符(因为它使用了默认变量,它与全局变量{{1 }},恰好是$/
)
"\n"
要修复您的代码段,您需要添加[1] pry(main)> gets
2
=> "2\n"
[2] pry(main)> gets.class
2
=> String
来删除换行符并将其转换为整数:
.chomp.to_i