四则运算2
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了四则运算2相关的知识,希望对你有一定的参考价值。
设计思想:
1:先按照题目要求要求满足顾客选择的条件
2:定义三个数组,一个数组保存第一个随机生成数,第二个数组保存第二个随机生成数,第三个保存生成的运算符号
3:判断有无乘除法
4:判断有无重复:第一个数组的每一位判断是否相等,如果相等判断第三个的运算符号是否相等,如果相等在判断第二个数组的数是否相等,如果都相等,重新生成第二个数,直到不相等
5:判断有无负数:如果运算符号是“-”,两个数相减,如果有负数,重新生成,直到无负数
6:判断有无余数:如果运算符是“/”,两数相除,如果有余数,重新生成,直到无余数
7:输出,判断一个运算式有几个数运算,有没有括号
源代码:
1 package 四则运算; 2 import java.util.Random; 3 import java.util.Scanner; 4 5 public class main { 6 public static void main(String[] args) 7 { 8 System.out.println("请输入需要产生多少个四则运算式:"); 9 Scanner input = new Scanner(System.in); 10 Scanner sc=new Scanner(System.in); 11 int num=sc.nextInt(); 12 System.out.println("请输入你想产生的数的范围(min-max):"); 13 int min=sc.nextInt(); 14 int max=sc.nextInt(); 15 System.out.println("请输入你想产生的运算式结果是否有无负数(1:有 2:无):"); 16 int neg=sc.nextInt(); 17 System.out.println("请输入你想产生的运算式结果是否有无乘除法(1:有 2:无):"); 18 int chengchu=sc.nextInt(); 19 System.out.println("请输入你想产生的运算式结果是否有无余数(1:有 2:无):"); 20 int rem=sc.nextInt(); 21 System.out.println("请输入你想产生的运算式是否有括号(1:有 2:无):"); 22 int sem=sc.nextInt(); 23 int zifu; 24 int [] arr1 = new int [num+200] ;//保存第一个随机生成数 25 int [] arr2 = new int [num+200];//保存第二个随机生成数 26 char [] arr4 = new char [num+200];//保存运算符号 27 Random rand = new Random(); 28 29 for(int i=0;i<num+200;i++) 30 { 31 arr1[i] = rand.nextInt(max-min+1)+min;//生成第一个随机生成数 32 arr2[i] = rand.nextInt(max-min+1)+min;//生成第一个随机生成数 33 /*判断有无乘除法*/ 34 if(chengchu==2) 35 { 36 zifu = rand.nextInt(2)+1; 37 } 38 else 39 { 40 zifu = rand.nextInt(4)+1; 41 } 42 if (zifu == 1) 43 arr4[i] = ‘+‘; 44 if (zifu == 2) 45 arr4[i] = ‘-‘; 46 if (zifu == 3) 47 arr4[i] = ‘*‘; 48 if (zifu == 4) 49 arr4[i] = ‘/‘; 50 51 } 52 53 54 /*判断有无重复*/ 55 for(int i=0;i<num+200;i++) 56 { 57 for(int j=1;j<num+200;j++) 58 { 59 if(arr1[i]==arr1[j]) 60 { 61 if(arr4[i]==arr4[j]) 62 { 63 if(arr2[i]==arr2[j]) 64 { 65 arr2[j]=rand.nextInt(max-min+1)+min;//如果都相等,重新生成第二个数,保证不相等 66 } 67 } 68 } 69 } 70 } 71 72 73 /*判断运算结果有无负数*/ 74 if(neg==2) 75 { 76 for(int i=0;i<num+200;i++) 77 { 78 if(arr4[i]==‘-‘) 79 { 80 int a=arr1[i]-arr2[i]; 81 while(a<0)//判断a是否小于0,(结果有无负数) 82 { 83 arr1[i] = rand.nextInt(max-min+1)+min; 84 if(arr1[i]==0) 85 { 86 arr1[i] = rand.nextInt(max-min+1)+min; 87 } 88 arr2[i] = rand.nextInt(max-min+1)+min; 89 { 90 if(arr2[i]==0) 91 { 92 arr2[i] = rand.nextInt(max-min+1)+min; 93 } 94 } 95 a=arr1[i]-arr2[i]; 96 } 97 } 98 } 99 } 100 101 102 /*判断运算结果有无余数*/ 103 if(rem==2) 104 { 105 for(int i=0;i<num+200;i++) 106 { 107 if(arr4[i]==‘/‘) 108 { 109 int a=arr1[i]%arr2[i]; 110 while(a!=0)//判断a是否等于0,(结果有无余数) 111 { 112 arr1[i] = rand.nextInt(max-min+1)+min; 113 arr2[i] = rand.nextInt(max-min+1)+min; 114 a=arr1[i]%arr2[i]; 115 } 116 } 117 } 118 } 119 120 /*输出*/ 121 for(int i=0;i<num;i++) 122 { 123 int a=rand.nextInt(3)+1; 124 if(a==1)//判断一个式子有两个数还是四个数参与运算 125 { 126 int b=rand.nextInt(3)+1; 127 /*四个式子参与运算是否有无括号*/ 128 if(b==1) 129 { 130 System.out.println(arr1[i]+" "+arr4[i]+" "+arr2[i]+"+"+arr1[i+num]+" "+arr4[i+num]+" "+arr2[i+num]); 131 } 132 else 133 { 134 if(sem==1) 135 { 136 System.out.println("("+arr1[i]+" "+arr4[i]+" "+arr2[i]+")"+"+"+"("+arr1[i+num]+" "+arr4[i+num]+" "+arr2[i+num]+")"); 137 } 138 else 139 { 140 System.out.println(arr1[i]+" "+arr4[i]+" "+arr2[i]+"+"+arr1[i+num]+" "+arr4[i+num]+" "+arr2[i+num]); 141 } 142 } 143 } 144 else 145 { 146 System.out.println(arr1[i]+" "+arr4[i]+" "+arr2[i]); 147 } 148 } 149 } 150 151 }
运行结果截图:
项目计划:
时间记录日志:
缺陷记录日志:
以上是关于四则运算2的主要内容,如果未能解决你的问题,请参考以下文章
获取 badarith,[erlang,'+',[error,0],[],同时使用 Erlang 片段在 TSUNG 中执行算术运算