华为OD机考-货币单位换算-字符串(JAVA 2025B卷)



纯暴力解法

java 复制代码
import java.util.*;
public class ExchangeMoney {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while(scanner.hasNextLine()){
            int count = Integer.parseInt(scanner.nextLine());
            List<String> strings = new ArrayList<>(count);
            for(int i=0;i<count;i++){
                strings.add(scanner.nextLine());
            }
            solve(strings);
        }
    }

    private static void solve(List<String> strings) {
        Integer sum =0;
        for (String s:strings){
            boolean fen = s.contains("fen");
            boolean cny = s.contains("CNY");
            boolean hkd = s.contains("HKD");
            boolean cents = s.contains("cents");
            boolean jpy = s.contains("JPY");
            boolean sen = s.contains("sen");
            boolean eur = s.contains("EUR");
            boolean eurocents = s.contains("eurocents");
            boolean gbp = s.contains("GBP");
            boolean pence = s.contains("pence");
            // CNY
            if(cny&&fen){//20CNY53fen
                String fen1 = s.split("fen")[0];
                String[] cnies = fen1.split("CNY");
                Double yuan = Double.parseDouble(cnies[0]);
                Double fentemp = Double.parseDouble(fen1.substring(cnies[0].length()+3));
                sum+= (int)  (yuan*100+fentemp);
            }else if(cny){
                sum+= (int) Double.parseDouble(s.substring(0,s.length()-3))*100;
            }else if(fen){
                sum+=(int)  Double.parseDouble(s.substring(0,s.length()-3));
            }
            // HKD
            if(hkd&&cents){//20HKD53cents
                String fen1 = s.split("cents")[0];
                String[] cnies = fen1.split("HKD");
                Double yuan = Double.parseDouble(cnies[0]);
                Double fentemp = Double.parseDouble(fen1.substring(cnies[0].length()+3));

                sum+= (int) (yuan/123 *100 *100+ fentemp/12300 *100 *100);
            }else if(hkd){
                sum+= (int) (Double.parseDouble(s.substring(0,s.length()-3))/123*100*100);
            }else if(cents){
                sum+= (int) (Double.parseDouble(s.substring(0,s.length()-3))/12300 *100 *100);
            }
            // JPY
            if(jpy&&sen){//20JPY53sen
                String fen1 = s.split("sen")[0];
                String[] cnies = fen1.split("JPY");
                Double yuan = Double.parseDouble(cnies[0]);
                Double fentemp = Double.parseDouble(fen1.substring(cnies[0].length()+3));
                sum+= (int) (yuan/1825 *100 *100+fentemp/182500 * 100 *100);
            }else if(jpy){
                sum+= (int) (Double.parseDouble(s.substring(0,s.length()-3))/1825*100*100);

            }else if(sen){
                sum+= (int) (Double.parseDouble(s.substring(0,s.length()-3))/182500 *100 *100);

            }
            // EUR
            if(eur&&eurocents){//20EUR53eurocents
                String fen1 = s.split("eurocents")[0];
                String[] cnies = fen1.split("EUR");
                Double yuan = Double.parseDouble(cnies[0]);
                Double fentemp = Double.parseDouble(fen1.substring(cnies[0].length()+3));
                sum+= (int) (yuan/14*100*100+fentemp/1400 *100 *100);

            }else if(eur){
                sum+= (int) (Double.parseDouble(s.substring(0,s.length()-3))/14*100*100);

            }else if(eurocents){
                sum+= (int) (Double.parseDouble(s.substring(0,s.length()-3))/1400*100*100);

            }
            // GBP
            if(gbp&&pence){//20GBP53pence
                String fen1 = s.split("pence")[0];
                String[] cnies = fen1.split("GBP");
                Double yuan = Double.parseDouble(cnies[0]);
                Double fentemp = Double.parseDouble(fen1.substring(cnies[0].length()+3));
                sum+= (int) (yuan/12*100*100+fentemp/1200*100*100);

            }else if(gbp){
                sum+= (int) (Double.parseDouble(s.substring(0,s.length()-3))/12*100*100);

            }else if(pence){
                sum+= (int) (Double.parseDouble(s.substring(0,s.length()-3))/1200*100*100);

            }
        }
        System.out.println(sum);
    }
}
相关推荐
南行*6 分钟前
C语言Linux环境编程
linux·c语言·开发语言·网络安全
J***51688 分钟前
SpringSecurity的配置
java
Morwit9 分钟前
Qt qml创建c++类的单例对象
开发语言·c++·qt
面汤放盐9 分钟前
软件架构指南 Software Architecture Guide
java·微服务·devops
tkevinjd9 分钟前
JUC5(线程池)
java·线程池·多线程·juc
Tao____10 分钟前
如何对接Modbus-tcp协议(使用Thinlinks物联网平台)
java·物联网·网络协议·tcp/ip·modbus
古城小栈11 分钟前
Rust 已经自举,却仍需GNU与MSVC工具链的缘由
开发语言·rust
鱼跃鹰飞14 分钟前
经典面试题:K8S的自动缩扩容和崩溃恢复
java·容器·kubernetes
jarreyer15 分钟前
数据项目分析标准化流程
开发语言·python·机器学习
你怎么知道我是队长19 分钟前
C语言---printf函数使用详细说明
c语言·开发语言