ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

二柱子四则预算生成进阶

2021-09-22 21:33:51  阅读:155  来源: 互联网

标签:柱子 进阶 int kh System fh println 预算 out


现在终于解决了随机生成括号的问题,操作数可以支持四个了

  1 package practice;
  2 
  3 import java.util.Random;
  4 import java.util.Scanner;
  5 
  6 public class add {
  7     public static void main(String[] args){
  8         char[] fh = new char[] {'+','-','×','÷'};
  9         int[][] cy = new int[1000][3];
 10         Random r= new Random(1);
 11         Scanner sc = new Scanner(System.in);
 12         System.out.println("请输入需要产生的题目数量.");
 13         int n1 = sc.nextInt();
 14         System.out.println("请输入操作个数(1.两个 2.三个 3.四个)");
 15         int n2 = sc.nextInt();
 16         System.out.println("请输入操作数的取值范围(先下限后上限):");
 17         int n3 = sc.nextInt();
 18         int n4 = sc.nextInt();
 19         System.out.println("是否添加括号?(1.是 2.否)");
 20         int n5 = sc.nextInt();
 21         if(n2==1) {
 22             if(n5==1)System.out.println("两个操作数加括号就没必要了吧");
 23             for(int i=0;i<n1;i++) {                    //两个操作数
 24                 int ran1 = r.nextInt(n4-n3+1)+n3;
 25                 int ran2 = r.nextInt(n4-n3+1)+n3;
 26                 int ch = r.nextInt(4);
 27                 int temp=0;
 28                 for(int j=0;j<i;j++) {
 29                     if(cy[j][0]==ran1&&cy[j][1]==ch&&cy[j][2]==ran2) {
 30                         i--;
 31                         temp=1;
 32                     }
 33                 }
 34                 if(temp==1)break;
 35                 cy[i][0] = ran1;
 36                 cy[i][1] = ch;
 37                 cy[i][2] = ran2;
 38                 System.out.println(ran1+" "+fh[ch]+" "+ran2);
 39             }
 40         }
 41         else if(n2==2) {                                //三个操作数
 42             if(n5==2) {
 43                 for(int i=0;i<n1;i++) {                    //三个操作数    无括号
 44                     int ran1 = r.nextInt(n4-n3+1)+n3;
 45                     int ran2 = r.nextInt(n4-n3+1)+n3;
 46                     int ran3 = r.nextInt(n4-n3+1)+n3;
 47                     int ch1 = r.nextInt(4);
 48                     int ch2 = r.nextInt(4);
 49                     System.out.println(ran1+" "+fh[ch1]+" "+ran2+" "+fh[ch2]+" "+ran3);
 50                 }
 51             }
 52             if(n5==1) {
 53                 for(int i=0;i<n1;i++) {                    //三个操作数    有括号
 54                     int temp = 0;
 55                     int ran1 = r.nextInt(n4-n3+1)+n3;
 56                     int ran2 = r.nextInt(n4-n3+1)+n3;
 57                     int ran3 = r.nextInt(n4-n3+1)+n3;
 58                     int ch1 = r.nextInt(4);
 59                     int ch2 = r.nextInt(4);
 60                     char[] kh = new char[6];
 61                     int k1 = r.nextInt(3)+1;
 62                     int k2 = r.nextInt(3)+1;
 63                     if(k2-k1>=1) {
 64                         kh[2*k1-2]='(';
 65                         kh[2*k2-1]=')';
 66                     }else {
 67                         --i;
 68                         temp = 1;
 69                     }
 70                     if(temp==1)continue;
 71                     System.out.println(kh[0]+" "+ran1+" "+kh[1]+" "+fh[ch1]+" "+kh[2]+" "+ran2+" "+kh[3]+" "+fh[ch2]+" "+kh[4]+" "+ran3+" "+kh[5]);
 72                 }
 73             }
 74         }
 75         if(n2==3) {
 76             if(n5==2) {
 77                 for(int i=0;i<n1;i++) {                    //四个操作数   无括号
 78                     int ran1 = r.nextInt(n4-n3+1)+n3;
 79                     int ran2 = r.nextInt(n4-n3+1)+n3;
 80                     int ran3 = r.nextInt(n4-n3+1)+n3;
 81                     int ran4 = r.nextInt(n4-n3+1)+n3;
 82                     int ch1 = r.nextInt(4);
 83                     int ch2 = r.nextInt(4);
 84                     int ch3 = r.nextInt(4);
 85                     System.out.println(ran1+" "+fh[ch1]+" "+ran2+" "+fh[ch2]+" "+ran3+" "+fh[ch3]+" "+ran4);
 86                 }
 87             }
 88             if(n5==1) {
 89                 for(int i=0;i<n1;i++) {                    //四个操作数    有括号
 90                     int temp = 0;
 91                     int ran1 = r.nextInt(n4-n3+1)+n3;
 92                     int ran2 = r.nextInt(n4-n3+1)+n3;
 93                     int ran3 = r.nextInt(n4-n3+1)+n3;
 94                     int ran4 = r.nextInt(n4-n3+1)+n3;
 95                     int ch1 = r.nextInt(4);
 96                     int ch2 = r.nextInt(4);
 97                     int ch3 = r.nextInt(4);
 98                     char[] kh = new char[8];
 99                     int k1 = r.nextInt(4)+1;
100                     int k2 = r.nextInt(4)+1;
101                     if(k2-k1>=1) {
102                         kh[2*k1-2]='(';
103                         kh[2*k2-1]=')';
104                     }else {
105                         --i;
106                         temp = 1;
107                     }
108                     if(temp==1)continue;
109                     System.out.println(kh[0]+" "+ran1+" "+kh[1]+" "+fh[ch1]+" "+kh[2]+" "+ran2+" "+kh[3]+" "+fh[ch2]+" "+kh[4]+" "+ran3+" "+kh[5]+" "+fh[ch3]+" "+kh[6]+" "+ran4+" "+kh[7]);
110             }
111         }
112     }
113 }
114 }

 

标签:柱子,进阶,int,kh,System,fh,println,预算,out
来源: https://www.cnblogs.com/SHINIAN200/p/15321821.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有