Arrays, Hashes, and Enumerables(homework for 01)

来源:互联网 发布:常用的网络通信协议 编辑:程序博客网 时间:2024/06/16 13:00

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_numenddef 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_2enddef 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_nend




0 0
原创粉丝点击