小学校四則演算

6258 ワード

import java.util.Random;
import java.util.Scanner;

public class test {
    public static void main(String[] args) {
        int n;
        int number;
        int count=0;
        Scanner in = new Scanner(System.in);
        
            do {
                System.out.println(" ?");
                number=in.nextInt();
                System.out.println(" ?");
                n = in.nextInt();
            } while (n < 1 && number>0);
            for(int i=0;i<number;i++){
            int x = new Random().nextInt((int) Math.pow(10, n)) + 1;
            int y = new Random().nextInt((int) Math.pow(10, n)) + 1;
            int o = new Random().nextInt(4);
            float z = 0;
            float input;
            String c = "?";
            boolean bigger = x > y ? true : false;//  
            switch (o) {
            case 0:
                c = "+";
                z = x + y;
                break;
            case 1:
                c = "-";
                if (bigger)
                    z = x - y;
                else
                    z = y - x;
                break;
            case 2:
                c = "*";
                z = x * y;
                break;
            case 3:
                c = "/";
                z = (float) x / y;
                break;
            default:
                System.out.println("error!");
            }
                if (!bigger && c.equals("-"))
                    System.out.print(y + c + x + "=");
                else
                    System.out.print(x + c + y + "=");
                input = in.nextFloat();
                if (input == z || (c.equals("/") && Math.abs(input-z)<0.01)){
                    System.out.println(" !");
                    count++;
                }
                else 
                    System.out.println(" !");
        }
            System.out.println(" "+number+" , "+count+" , "+(number-count)+" , "+(float)count/number*100+"%");
    }
}