每日总结:Java课堂测试第三阶段第二次优化 (四则运算) (2021.9.22)
package jisuan2;
import java.util.*;
import java.util.Scanner;
public class xiaoxue {
public static void main(String[] args) {
System.out.println("请输入要出题目的数量:");
Scanner sc=new Scanner(System.in);
int number=sc.nextInt();
System.out.println("是否需要乘除法,填YES或NO:");
Scanner in=new Scanner(System.in);
String s=in.nextLine();
System.out.println("请输入算式数字范围:");
int c=sc.nextInt();
System.out.println("是否需要括号,填YES或NO");
String u=in.nextLine();
System.out.println("请输入操作数的个数:");
int z=sc.nextInt();
String y=new String("YES");
String n=new String("NO");
xuChengKuo(number,c,z);
}
public static void xuChengKuo(int number,int c,int z) //number是题目数量,c是算式范围,z是操作数
{
//记住第一个括号的位置
String[] bracket=new String[2]; //括号申请
bracket[0]="(";
bracket[1]=")";
Random random=new Random();
int[] operand=new int[number];
for(int w=0;w<number;w++)
{
operand[w]=random.nextInt(c); //每一位操作数的数值
}
for(int j=0;j<number;j++)
{
String[] symbol=new String[number];
for(int i=0;i<number;i++) //随机运算符
{
if(i%4==0) symbol[i]="+";
if(i%4==1) symbol[i]="-";
if(i%4==2) symbol[i]="*";
if(i%4==3) symbol[i]="/";
}
/*int[] x=new int[z-1];
for(int i=0;i<z-1;i++)
{
x[i]=i;
}*/
/*for(int a=0;a<z;a++)
{
int R=random.nextInt(number);
int r=random.nextInt(number);
if(a!=z-1)
{
System.out.print(operand[R]+symbol[r]);
}
else System.out.println(operand[R]+"=");
}*/
String[] ti=new String[4*z-1]; //一道题即为一个字符串数组
for(int i=1;i<4*z-1;i=i+4) //将已经生成的随机数放入数组
{
int R=random.nextInt(number);
ti[i]=String.valueOf(operand[R]);
}
for(int i=3;i<4*z-1;) //存储运算符
{
int r=random.nextInt(number);
ti[i]=symbol[r];
i=i+4;
}
int x1,x2,p;
do //左括号存储
{
x1=random.nextInt(4*z-7);
if(x1%4==0&&ti[x1]==null) {
ti[x1]=bracket[0];
}
}while(ti[x1]!=bracket[0]);
do //右括号存储
{
x2=random.nextInt(4*z-1);
p=x1+6;
if((x2>=p)&&((x2-p)%4==0)&&(ti[x2]==null)) {
ti[x2]=bracket[1];}
}while(ti[x2]!=bracket[1]);
for(int i=0;i<4*z-1;i++) //将数组中没有字符的位置放入特殊字符,方便最后判断输出;
{
if(ti[i]==null) {
ti[i]="#";
}
}
for(int i=0;i<ti.length;i++)
{
if(ti[i]!="#")
System.out.print(ti[i]);
}
System.out.print("="+"\n");
}
}
}
最新文章
- ubuntu14.04redis安装以及扩展
- Android中下载、安装和卸载(原)
- Android Studio Gradle Build Running 特别慢的问题探讨
- Centos7 Apache 2.4.18编译安装
- Array 数组常用方法
- jquery发送ajax请求返回数据格式
- 秀尔算法:破解RSA加密的“不灭神话”
- 用defy来潜水最终还是挂了........
- MVC 插件化框架支持原生MVC的Area和路由特性
- Bootstrap3.0学习第六轮(表单)
- Chrome 下动画卡顿问题的另一种可能
- PHP学习笔记-3
- uva 1411 Ants
- BZOJ 3994: [SDOI2015]约数个数和3994: [SDOI2015]约数个数和 莫比乌斯反演
- oracle级联删除
- jMeter_响应数据乱码
- java判断是移动端还是pc端
- spark streaming从指定offset处消费Kafka数据
- 关于README的内容
- CSU 1351 Tree Counting
热门文章
- 如何攻击Java Web应用
- 办公室文员必备python神器,将PDF文件表格转换成excel表格!
- [源码解析] 深度学习流水线并行 PipeDream(3)--- 转换模型
- 【Python机器学习实战】决策树与集成学习(五)——集成学习(3)GBDT应用实例
- git跟踪忽略规则文件.gitignore
- 2021 年 9 月 TIOBE 指数 C# 增长突破 1.2%
- word域实现动态填充信息附件下载
- angularjs $http.get 和 $http.post 传递参数
- Django学习day11随堂笔记
- 宝塔面板使用PM2命令提示Command Not Found解决方案