题目描述:
记账本上记录了若干条多国货币金额,需要转换成人民币分(fen),汇总后输出。
每行记录一条金额,金额带有货币单位,格式为数字+单位,可能是单独元,或者单独分,或者元与分的组合。
要求将这些货币全部换算成人民币分(fen)后进行汇总,汇总结果仅保留整数,小数部分舍弃。元和分的换算关系都是1:100,如下:
1CNY=100fen(1元=100分)
1HKD=100cents(1港元=100港分)
1JPY=100sen(1日元=100仙)
1EUR=100eurocents(1欧元=100欧分)
1GBP=100pence(1英镑=100便士)
汇率如下表
CNY
JPY
HKD
EUR
GBP
100
1825
123
14
12
即100CNY=1825JPY=123HKD=14EUR=12GBP
输入描述:
第一行输入为N,N表示记录数。0<N<100之后N行,每行表示一条货币记录,且该行只会是一种货币。
输出描述:
将每行货币转换成人民币分(fen)后汇总求和,只保留整数部分。
输出格式只有整数数字,不带小数,不带单位。
补充说明:
输出格式只有数字,不带单位
收起
示例1
输入:
1
100CNY
输出:
10000
说明:
100CNY转换后是10000fen,所以输出结果为10000
示例2
输入:
1
3000fen
输出:
3000
说明:
3000fen,结果就是3000
示例3
输入:
1
123HKD
输出:
10000
说明:
HKD与CNY的汇率关系是123:100,所以换算后,输出结果为10000
示例4
输入:
2
20CNY53fen
53HKD87cents
输出:
6432
说明:
20元53分+53港元87港分,换算成人民币分后汇总,为6432
import java.util.Scanner;
public class Main {
public static double get( String s, int y, int x) {
double sum = 0;
double f = Double.parseDouble(s.substring(y, x));
if (s.charAt(x) == 'C')
sum = sum + f;
else if (s.charAt(x) == 'f') sum += f / 100;
else if (s.charAt(x) == 'E') sum += f / 0.14; //100:14
else if (s.charAt(x) == 'e') sum += f / 0.14 / 100;
else if (s.charAt(x) == 'G') sum += f / 0.12; //100:12
else if (s.charAt(x) == 'p') sum += f / 0.12 / 100;
else if (s.charAt(x) == 'J') sum += f / 18.25; //100:1825
else if (s.charAt(x) == 's') sum += f / 18.25 / 100;
else if (s.charAt(x) == 'H') sum += f / 1.23; //100:123
else if (s.charAt(x) == 'c') sum += f / 1.23 / 100; //
return sum;
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
in.nextLine();
double sum = 0;
while (n-- > 0) {
String s = in.nextLine();
int x = 0;
while ((s.charAt(x) >= '0' && s.charAt(x) <= '9') || s.charAt(x) == '.') {
x++;
}
int y = x;
while (y < s.length() && ((s.charAt(y) >= 'a' && s.charAt(y) <= 'z') ||
(s.charAt(y) >= 'A' && s.charAt(y) <= 'Z')))
y++;
if (y == s.length()) {
sum = sum + get(s, 0, x);
} else {
sum = sum + get(s, 0, x);
x = y;
while ((s.charAt(x) >= '0' && s.charAt(x) <= '9') || s.charAt(x) == '.')
x++;
sum = sum + get(s, y, x);
}
}
long ans = (long)(sum * 100);
System.out.println(ans);
}
}
T = int(input())
Y = ['CNY', 'HKD', 'JPY', 'EUR', 'GBP']
F = ['fen', 'cents', 'sen', 'eurocents', 'pence']
cost = [100, 123, 1825, 14, 12]
result = 0
for k in range(T):
st = input()
left = 0
for i in range(5):
if Y[i] in st:
num =''
j = 0
while st[j] >= '0' and st[j]<= '9':
num = num + st[j]
j = j + 1
num = int(num)
result = result + num * 100/cost[i] * cost[0]
while j < len(st) and not (st[j] >= '0' and st[j] <= '9'):
j = j + 1
left = j
for i in range(4, -1, -1):
if F[i] in st:
num = ''
j = left
while st[j] >= '0' and st[j] <= '9':
num = num + st[j]
j = j + 1
num = int(num)
result = result + num/cost[i] * cost[0]
break
print(int(result))