首页 > 试题广场 >

A + B

[编程题]A + B
  • 热度指数:4755 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
读入两个小于100的正整数A和B,计算A+B. 需要注意的是:A和B的每一位数字由对应的英文单词给出.

输入描述:
测试输入包含若干测试用例,每个测试用例占一行,格式为"A + B =",相邻两字符串有一个空格间隔.当A和B同时为0时输入结束,相应的结果不要输出.


输出描述:
对每个测试用例输出1行,即A+B的值.
示例1

输入

one + two =
three four + five six =
zero seven + eight nine =
zero + zero =

输出

3
90
96
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
		
		Scanner scanner = new Scanner(System.in);
		
		while (scanner.hasNext()) {
			String string = scanner.nextLine();
			
			String[] strs = string.split(" ");
			
			if (strs[0].equals("zero") && strs[1].equals("+") && strs[2].equals("zero") && strs[3].equals("=")) {
				break;
			}
			
			Map<String, Integer> myMap = new HashMap<String, Integer>();
			myMap.put("one",1 );
			myMap.put("two",2 );
			myMap.put("three", 3);
			myMap.put("four", 4);
			myMap.put("five", 5);
			myMap.put("six", 6);
			myMap.put("seven",7 );
			myMap.put("eight", 8);
			myMap.put("nine", 9);
			myMap.put("ten", 10);
			myMap.put("zero", 0 );
			
			int indexAnd = 0;
			int indexEqual = 0;
			for (int i = 0; i < strs.length; i++) {
				if (strs[i].equals("+")) {
					indexAnd = i;
				}if (strs[i].equals("=") ) {
					indexEqual = i;
				}
			}
			
			String str1 = "";
			for (int i = 0; i < indexAnd; i++) {
				
				str1 += Integer.toString(myMap.get(strs[i])) ;
			}
			
			int a1 = Integer.parseInt(str1);
			
			
			String str2 = "";
			for (int i = indexAnd + 1; i < indexEqual; i++) {
				str2 += Integer.toString(myMap.get(strs[i]));
			}
			
			int a2 = Integer.parseInt(str2);
			
			System.out.println(a1+a2);
		
		 
		}
		
	}
}

编辑于 2024-03-15 19:34:52 回复(0)
优雅的写法
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()){
            String line = scanner.nextLine();
            String s = line.replace("zero", "0")
                    .replace("one", "1")
                    .replace("two", "2")
                    .replace("three", "3")
                    .replace("four", "4")
                    .replace("five", "5")
                    .replace("six", "6")
                    .replace("seven", "7")
                    .replace("eight", "8")
                    .replace("nine", "9")
                    .replace(" ", "")
                    .replace("=", "");
            String[] ss = s.split("\\+");
            System.out.println(Integer.parseInt(ss[0])+Integer.parseInt(ss[1]));
        }
    }
}


发表于 2020-03-20 19:08:56 回复(0)
import java.util.Scanner;
public class AplusB {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        String s[]=sc.nextLine().split(" ");
        int a=0;
        int b=0;
        int c=0;
        for (int i = 0; i < s.length; i++) {
            if (s[i].equals("+")) {
                a=change(s,0,i);
                b=i+1;
            }
            if (s[i].equals("=")) {
                c=change(s,b,i);
            }
        }
        System.out.println(a+c);
    }
    private static int change(String[] s, int i, int k) {
        StringBuffer sb=new StringBuffer();
        for (int j = i; j < k; j++) {
            if (s[j].equals("one")) {
                sb.append("1");
            }
            if (s[j].equals("two")) {
                sb.append("2");
            }
            if (s[j].equals("three")) {
                sb.append("3");
            }
            if (s[j].equals("four")) {
                sb.append("4");
            }
            if (s[j].equals("five")) {
                sb.append("5");
            }
            if (s[j].equals("six")) {
                sb.append("6");
            }
            if (s[j].equals("seven")) {
                sb.append("7");
            }
            if (s[j].equals("eight")) {
                sb.append("8");
            }
            if (s[j].equals("nine")) {
                sb.append("9");
            }
            if (s[j].equals("zero")) {
                sb.append("0");
            }
        }
        return Integer.parseInt(sb.toString());
    }
}

发表于 2019-11-10 11:35:05 回复(0)
import java.util.*;
public class Main{
    public static void main(String args[]){
        Scanner sc=new Scanner(System.in);
        while(sc.hasNext()){
            String str=sc.nextLine();
            String all[]=str.split("[+]");
            int a=getDig(all[0]);
            int b=getDig(all[1].substring(1,all[1].length()-1));
            System.out.println(a+b);
        }
    }
     
    public static int getDig(String a){
        Map<String,Integer> map=new HashMap<String,Integer>();
        map.put("zero",0);
        map.put("one",1);
        map.put("two",2);
        map.put("three",3);
        map.put("four",4);
        map.put("five",5);
        map.put("six",6);
        map.put("seven",7);
        map.put("eight",8);
        map.put("nine",9);
        String as[]=a.split(" ");
        if(as.length>1){
           return map.get(as[0])*10+map.get(as[1]);
        }else{
            return map.get(as[0]);
        }
    }
}
发表于 2019-09-26 21:40:21 回复(0)

问题信息

难度:
4条回答 8260浏览

热门推荐

通过挑战的用户

查看代码