我需要对以下逻辑进行一些输入。
这是一种计费系统,它接受输入并具有与之关联的值。
A = 2 , 3A = 5
B = 3
C = 1 , 4C = 3
我的代码应该采用 ABCCBAACCA ,输出应该是 16 的值。
我现在的解决方案是,我想计算字符串中的每个元素,并且 A 的模数(模数)为 3,C 的模数为 4(如上述情况,B 的情况下不需要)每个元素为了得到结果。
我很困惑我应该使用什么数据结构来实现这样的系统。
最佳答案
在伪代码中我相信它会是:
计算所有 A、B 和 C
将 A 除以 3 再乘以 5
A 取模 3 并乘以 2
将 B 乘以 3
C除以4再乘以3
C 取模 4
将 5 个结果相加。
在 Ruby 中它可能像这样:
input = "ABCCBAACCA"
letters = ["A", "B", "C"]
total = 0
def score(letter,count)
if letter == "A"
((count/3)*5)+((count%3)*2)
elsif letter == "B"
count*3
else letter == "C"
((count/4)*3)+(count%4)
end
end
letters.each do |letter|
puts "#{letter}: #{score(letter, input.count(letter))}"
total += score(letter, input.count(letter))
end
puts "Total: #{total}"
产生:
A: 7
B: 6
C: 3
Total: 16
关于java - 计费系统 - 编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10554114/