实现随机生成算式,支持括号和四则运算。

分析:实现随机生成算式,支持括号和四则运算。

思路:先生成随机字符数组,然后生成随机数组,两者拼接。支持指定范围生成,和指定算式的长度。

代码
package com.instance;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class Create_title

public String create_title( int range, int num2) //num:提目数 range:范围 num2:题目组成数量

Random random = new Random(range);

String char_arrays = null;
int num3 = (int) (Math.random() * num2);//分数的个数
int num4 = num2 - num3;//正数个数
int charNum = num2 - 1;//符号个数

int bracketL = 0;//(位置

int int_arrays = new intnum4 + num3 * 2;
boolean flag = isBracket();
if(flag)
char_arrays = returnChar(num3,charNum+2,flag);

}else
char_arrays = returnChar(num3,charNum,false);
}

for(int w=0;w<num2;wint_arraysw = random.nextInt(range);
}
String title = “”;
if(char_arrays0.equals("("))
for(int i = 0;i<num2;ititle +=char_arraysi+((int)(Math.random()*range)+"");
}
if(char_arraysnum2.equals(")"))
title += “)”;
}

}else
for (int i = 0; i <= num2; ititle += ((int) (Math.random() * range) + “”) + char_arraysi;
}
}
if(title.charAt(title.length()-1)’+'title.charAt(title.length()-1)’/'title = title.substring(0,title.length()-1);
}

return title;
}

boolean isBracket()
return true;
}

String returnChar(int mark,int charNum,boolean flag)
Random random = new Random();
String char_array = new StringcharNum;

if(flag)
int bracketL = random.nextInt(charNum-2);//(位置,最后一位和倒数第二位不能是(

int j = charNum - bracketL - 2;

int bracketR = bracketL+random.nextInt(j) + 2;//)位置这个随机数可以生成0

if(bracketL!=0)
char_arraybracketL = “+(”;
}else
char_arraybracketL = “(”;

}

if(bracketRcharNum-1)
char_arraybracketR = “)”;
}else
char_arraybracketR = “)-”;
}
}
int mark1 = 0;
while(true)
if(mark1
mark)
break;
}
int i = (int)(Math.random()*charNum);
if(char_arrayi==null)
char_arrayi="/";
mark1}

}
int num = 0;
while(true)

if(num == charNum)break;
if(char_arraynum == null)
int i= (int)(Math.random()2);
switch (i)
case 0:char_arraynum="
";
break;
case 1:char_arraynum="+";
break;
case 2:char_arraynum="-";
break;
}
}

num
}
return char_array;
}

}
调用
在这里插入图片描述
[结果展示
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_44688861/article/details/105073804