每日总结: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");
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端