1

我正在尝试创建一个 ruby​​ 程序,其中输入三个数字并取它们的总和,但如果任何数字相同,它们不计入总和。例如 (4,5,4) = 5 我的问题在于我的表达方式。如果我输入相同的数字,我会得到各种组合的多个输出。例如输入 5,5,5 = 15,5,0

if a != b or c then
  puts a+b+c
elsif b != a or c then
  puts a+b+c
elsif c != a or b then 
  puts a+b+c
end

if a == b then
  puts c
elsif a == c then
  puts b
elsif b == c then
  puts a
end

if a == b and c then
  puts 0
elsif b == a and c then
  puts 0
elsif c == a and b then
  puts 0
end
4

1 回答 1

2

用两个漂亮的不言自明的单线解决它

array = [a,b,c]

array = array.keep_if {|item| array.count(item) == 1 }
array.inject(0){|sum,item| sum + item}

- 第一行使用您的参数创建一个数组。
- 第二行只保留计数等于 1 的项目(删除出现多次的项目),并将其存储在数组中。
-第三行总结了所有剩余的元素。

瞧,红宝石的方式:)

于 2012-04-03T22:58:35.283 回答