测试2错误纠正

错误纠正

这次来一篇简单的四则运算程序吧!

四则运算程序

//Main.java
import java.util.Random;
import java.util.Scanner;

public class Main{
//主界面
        public static void main(String[] args)
        {
            while(true) {
                Scanner sc = new Scanner(System.in);

                System.out.println("请输入你想要打印的题目数量:");
                int sum = sc.nextInt();            
                System.out.println("请输入操作数的个数:");
                int count = sc.nextInt();            
                System.out.println("请输入操作数的范围:");
                int ff = sc.nextInt();                
                System.out.println("请输入是否有乘除法?1、有  2、没有");
                int x = sc.nextInt();               
                System.out.println("请输入是否添加括号?1、是  2、否");
                int y = sc.nextInt();              
                if (sum < 1 || count < 2 || ff < 0 || (x != 1 && x != 0) || (y != 1 && y != 0)) {
                    System.out.println("输入错误,请重新输入!");
                } else {
                    getAnswer(sum, count, ff, x, y);
                    System.exit(-1);
                }
            }
        }
    //操作完成界面
        public static void getAnswer(int sum,int count,int ff,int x,int y)
        {
            Random random = new Random();
            int[] admin = new int[sum+10000];
            int[] getDo = new int[count*2-1];
            for(int i = 0;i < sum;i++)
            {
                boolean ss = true;//判断是否重复的变量

                int left = random.nextInt(count - 1);//左边括号的随机性
                int right = random.nextInt(count - left) + left + 1;//右边括号的随机性

                for(int j = 0;j < count*2-1 ;j++)
                {
                    getDo[j] = random.nextInt(ff);//操作数数值的随机性
                }
                for(int k = 0; k < count;k++)
                {
                    admin[i] += getDo[k*2]*k;
                }

                for(int m = 0; m < j ;m++)//重复
                {
                    if(admin[m] == admin[i])
                    {
                        ss = false;
                        break;
                    }
                }
//没有重复--花样输出
                if(ss)
                {
                    for(int k = 0;k < count * 2 - 1 ;k++)
                    {
                        if(y == 1)//有括号
                        {
                            if( 2*left == k)
                                System.out.print("(");
                            if(k%2 == 0 && k!= count*2-2)
                            {
                                System.out.print(getDo[k] + " ");
                                if( 2*right - 2 == k)        
                                    System.out.print(")");
                            }
                            else if(k == count*2-2)
                            {
                                System.out.print(getDo[k]);
                                if( 2*right - 2 == k)
                                    System.out.print(")");
                                System.out.println(" =");
                            }
                            else if(k % 2 == 1)
                            {
                                if(x == 1)//有乘除法
                                {
                                    if(getDo[k]%4 == 1)
                                    {
                                        System.out.print("+ ");
                                    }
                                    else if(getDo[k]%4 == 2)
                                    {
                                        System.out.print("- ");
                                    }
                                    else if(getDo[k]%4 == 3)
                                    {
                                        System.out.print("* ");
                                    }
                                    else if(getDo[k]%4 == 0)
                                    {
                                        System.out.print("/ ");
                                    }
                                }
                                else if(x == 0)//没有乘除法
                                {
                                    if(getDo[k]%2 == 1)
                                    {
                                        System.out.print("+ ");
                                    }
                                    else if(getDo[k]%2 == 0)
                                    {
                                        System.out.print("- ");
                                    }
                                }
                            }
                        }
                        else//没有括号
                        {
                            if(k%2 == 0 && k!= count*2-2)
                            {
                                System.out.print(getDo[k] + " ");
                            }
                            else if(k == count*2-2)
                            {
                                System.out.println(getDo[k] + " =");
                                if( 2*right - 1 == k)
                                    System.out.print(")");
                            }
                            else if(k % 2 == 1)
                            {
                                if(x == 1)//有乘除法
                                {
                                    if(getDo[k]%4 == 1)
                                    {
                                        System.out.print("+ ");
                                    }
                                    else if(getDo[k]%4 == 2)
                                    {
                                        System.out.print("- ");
                                    }
                                    else if(getDo[k]%4 == 3)
                                    {
                                        System.out.print("* ");
                                    }
                                    else if(getDo[k]%4 == 0)
                                    {
                                        System.out.print("/ ");
                                    }
                                }
                                else if(x == 0)//没有乘除法
                                {
                                    if(getDo[k]%2 == 1)
                                    {
                                        System.out.print("+ ");
                                    }
                                    else if(getDo[k]%2 == 0)
                                    {
                                        System.out.print("- ");
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
posted @ 2022-09-09 21:42  yesyes1  阅读(48)  评论(0)    收藏  举报