Arrays, Hashes, and Enumerables(homework for 01)

Arrays, Hashes, and Enumerables

                                                         ——孙琨SealSun

1、问题


  Check the Ruby 2.x documentation on Array, Hash and Enumerable as they could help tremendously with these exercises.

 Define a method sum(array) that takes an array of integers as an argument and returns the sum of its elements. For an empty array it should return zero.

 Define a method max_2_sum(array) which takes an array of integers as an argument and returns the sum of its two largest elements. For an empty array it should return zero. For an array with just one element, it should return that element.

 Define a method sum_to_n?(array) that takes an array of integers and an additional integer, n, as arguments and returns true if any two elements in the array of integers sum to n. An empty array should sum to zero by definition.

  You can check your progress by running rspec spec/part1_spec.rb, or just running autotest and leaving it running.


2、解答代码


#-------------------------------
#-----程序名称:homework for 01
#-----编译环境:ruby 2.2.3
#-----作    者:孙琨SealSun
#-----编写地点:UCAS  
#-----编写时间:2015年10月05日  
#--------------------------------

def sum 
# YOUR CODE HERE
  sum_num = 0
  arr_size=arr.size
  if arr.size==0 #判断数组元素是否只有一个
    return 0
  end
  
  arr.each do |i|
    sum_num += i
  end
  return sum_num
end

def max_2_sum arr
  # YOUR CODE HERE
  sum_num_2 = 0
  arr_size=arr.size
  if arr_size==0 #判断数组元素是否为空
    return 0
  end
  if arr_size==1 #判断数组元素是否为1个
    return arr[0]
  end
 
  arr_sort=arr.sort #先排序,再截取最大的两个数
  for i in 1..2
    sum_num_2 += arr_sort[arr_size-i]
  end
  return sum_num_2
end

def sum_to_n? arr, n
  # YOUR CODE HERE
  sum_num_n = 0
  arr_size=arr.size
  if arr_size==0 #判断数组元素是否为空
    return 0
  end
  if arr_size<=n #判断数组元素是否不多于n个
    arr.each do |i|
      sum_num_n += i
    end
    return sum_num_n
  end

  arr_sort=arr.sort #先排序,再截取最大的n个数
  for i in 1..n
    sum_num_n += arr_sort[arr_size-i]
  end
  return sum_num_n
end




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值