From c01b8ffc71a2d435d1cb842051706b8bb3ec7830 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=8D=9A=E6=96=87?= <15549487+FX_YBW@user.noreply.gitee.com> Date: Thu, 25 Sep 2025 15:28:17 +0800 Subject: [PATCH] =?UTF-8?q?final1=20=E5=8A=9F=E8=83=BD=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E5=9F=BA=E6=9C=AC=E6=97=A0=E8=AF=AF=EF=BC=8C=E5=BC=80=E5=A7=8B?= =?UTF-8?q?=E6=B5=8B=E8=AF=95bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/mathpuzzle/service/JuniorHighGenerator.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/mathpuzzle/service/JuniorHighGenerator.java b/src/mathpuzzle/service/JuniorHighGenerator.java index 8665ab0..d3decdc 100644 --- a/src/mathpuzzle/service/JuniorHighGenerator.java +++ b/src/mathpuzzle/service/JuniorHighGenerator.java @@ -24,11 +24,18 @@ public class JuniorHighGenerator implements QuestionGenerator { private String generateSingleQuestion() { List parts = new ArrayList<>(); - int operandCount = random.nextInt(4) + 2; + int operandCount = random.nextInt(5) + 1; parts = generateBase(operandCount, parts); // hasAdvancedOp用以检测下面的循环是否加入了高级运算符,如果没有就启动保底 boolean hasAdvancedOp = false; - if (operandCount > 2 && random.nextBoolean()) { + if (operandCount == 1) { + if ("平方".equals(ADVANCED_OPS[random.nextInt(ADVANCED_OPS.length)])) { + parts.add("平方"); + } else { + parts.set(0, "开根号" + parts.get(0)); + } + hasAdvancedOp = true; + } else { // 遍历查找左括号的合理位置 for(int i = 0; i < parts.size() - 2; i++) { // 该位置要为操作数且随机添加括号