首页 > 试题广场 >

加减乘除

[编程题]加减乘除
  • 热度指数:7216 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
根据输入的运算符对输入的整数进行简单的整数运算。 运算符只会是加+、减-、乘*、除/、求余%、阶乘!六个运算符之一。 输出运算的结果,如果出现除数为零,则输出“error”,如果求余运算的第二个运算数为0,也输出“error”。

输入描述:
输入为一行。先输入第一个整数,空格输入运算符,然后再空格输入第二个整数,回车结束本次输入。
如果运算符为阶乘!符号,则不输入第二个整数,直接回车结束本次输入。


输出描述:
可能有多组测试数据,对于每组数据,
输出一行。输出对输入的两个(或一个)数,根据输入的运算符计算的结果,或者“error”。
示例1

输入

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);
            }


        }
    }


}


发表于 2021-02-23 17:33:15 回复(0)
Java 解法
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;
    }
}


发表于 2020-03-13 11:25:37 回复(0)