java - 计费系统 - 编程

标签 java ruby math

我需要对以下逻辑进行一些输入。

这是一种计费系统,它接受输入并具有与之关联的值。

A = 2 , 3A = 5
B = 3
C = 1 , 4C = 3

我的代码应该采用 ABCCBAACCA ,输出应该是 16 的值。

我现在的解决方案是,我想计算字符串中的每个元素,并且 A 的模数(模数)为 3,C 的模数为 4(如上述情况,B 的情况下不需要)每个元素为了得到结果。

我很困惑我应该使用什么数据结构来实现这样的系统。

最佳答案

在伪代码中我相信它会是:

计算所有 A、B 和 C

  1. 将 A 除以 3 再乘以 5

  2. A 取模 3 并乘以 2

  3. 将 B 乘以 3

  4. C除以4再乘以3

  5. 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/

相关文章:

java - 无法访问或导航 jsp 代码中的图像文件

ruby - Ruby RegExp 中的可选命名组

ruby - 列出 Chef 中所有声明的包

JavaScript - 搜索数组中的第一个字符

数学问题 : number of different permutations

java - 如何在android中将字符串存储到文件中

java - 一个线程大部分时间都在运行

java - 对话框仅在启动时第一次启动?

ruby-on-rails - Rspec 跳过 Controller 中的设计操作 - sign_in_and_redirect

javascript - 流程图 : how to add a beginning and ending tick?