华为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);
    }
}
相关推荐
yz_aiks3 分钟前
IDEA终端配置oh-my-zsh实战:安装、插件与日常使用技巧
java·ide·intellij-idea
Refrain_zc4 分钟前
Android 老设备存储空间展示:机身存储 + TF 卡容量获取完整实现
java
java1234_小锋9 分钟前
LangChain4j 开发Java Agent智能体- HelloWorld 实现
java·langchain4j
z落落10 分钟前
C# 字段与属性(get/set访问器、三种属性写法、只读属性)+属性拦截例子(get动态计算 + set数据校验)
开发语言·c#
RainCity12 分钟前
Java Swing 自定义组件库分享(十)
java·笔记·后端
段ヤシ.13 分钟前
回顾Java知识点,面试题汇总Day18(持续更新)
java·网络编程·反射
影寂ldy20 分钟前
C#栈和队列
开发语言·c#
小yu学编程20 分钟前
IDEA 2025版本中如何设置包层级结构
java·ide·intellij-idea·层级结构
YXWik621 分钟前
CodeGraph安装及在idea的claude code插件中使用
java·ide·intellij-idea
zzipeng23 分钟前
Linux 并发与竞争
java·linux·运维