输入为一行。先输入第一个整数,空格输入运算符,然后再空格输入第二个整数,回车结束本次输入。 如果运算符为阶乘!符号,则不输入第二个整数,直接回车结束本次输入。
可能有多组测试数据,对于每组数据, 输出一行。输出对输入的两个(或一个)数,根据输入的运算符计算的结果,或者“error”。
12 + 34 54 - 25 3 * 6 45 / 0 5 ! 34 % 0
46 29 18 error 120 error
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String s; while ((s = br.readLine()) != null) { String[] str = s.split(" "); if (str.length == 3) { int a = Integer.parseInt(str[0]); int b = Integer.parseInt(str[2]); if (str[1].equals("+")) { System.out.println(a + b); } else if (str[1].equals("-")) { System.out.println(a - b); } else if (str[1].equals("*")) { System.out.println(a * b); } else if (str[1].equals("/")) { if (str[2].equals("0")) System.out.println("error"); else System.out.println(a / b); } else if (str[1].equals("%")) { if (str[2].equals("0")) System.out.println("error"); else System.out.println(a % b); } } else if (str.length == 2 && str[1].equals("!")) { int x = Integer.parseInt(str[0]); int result = 1; for (int i = 1; i <= x; i++) { result = result * i; } System.out.println(result); } } } }
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (scanner.hasNext()){ int i = scanner.nextInt(); String s = scanner.next(); int j=0; if (!s.equals("!")){ j = scanner.nextInt(); } switch (s){ case "+": System.out.println(i+j);break; case "-": System.out.println(i-j);break; case "*": System.out.println(i*j);break; case "/": if (j==0) System.out.println("error"); else System.out.println(i/j); break; case "!": System.out.println(fun(i));break; case "%": if (j==0) System.out.println("error"); else System.out.println(i%j); break; } } } static int fun(int n){ int res=1; for (int i = 2; i <=n ; i++) { res=res*i; } return res; } }