在数组中添加元素

时间:2011-06-25 00:05:46

标签: ruby arrays algorithm

我有以下问题:

  1. 有一个由6个数字组成的数组,最多两个数字。
  2. Y 是一个数组,其 i th元素是第一个数组的第一个 i +1元素的总和。
  3. 通过键盘接受数字输入。如果它匹配 Y 中的一个数字,则显示一条消息;如果没有,请重新启动程序。
  4. Diagram

    这是我想的算法:

    • 初始化空数组[x]& [Y]
    • 6.times.map {Random.rand(1..99)}
    • 使用每个数字添加数字吗?
    • 以阵列[y]
    • 存储
    • 将输入与== array [y]
    • 进行比较
    • 如果任何实例匹配显示msg,则重新启动

    如果对此问题有任何指导或帮助,我将非常感激。

2 个答案:

答案 0 :(得分:2)

loop do
  x = Array.new(6){rand(99)}
  y = []
  x.each{|k| y.push(k + y.last.to_i)}
  y.shift
  break if y.include?(gets.to_i)
end
puts 'message'

答案 1 :(得分:1)

这是对你的问题的快速抨击。

def check_number_in_array
  x = Array.new(6)
  y = []
  begin
    x.collect! { rand(99) }
    y.clear
    sum = 0
    x.each do |i|
      sum = sum+i
      y << sum
    end
    gets
    # The following lines are just for "debugging"
    print "x = [ "
    x.each {|i| print i, " "}
    print "]\ny = [ "
    y.each {|i| print i, " "}
    print "]\n"
  end while !y.include?($_.to_i)
  puts "Good guess!"
end