WindMLATGLS 2022-10-05 15:36 采纳率: 20%
浏览 20

Csp考试中20190302 24点的问题

有没有人知道为什么这样在CSP模拟考试中可以得到正确结果,却只能得30分?

贴一下原问题

img

这里开始是30分的错误代码

import java.util.*;

import static java.lang.Integer.parseInt;

public class Main {
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
Stack numStack=new Stack<>();
Stack opeStack=new Stack<>();
int n=scanner.nextInt();
int index=0;
String[] input=new String[n];
for(int i=0;i<n;i++){
input[i]=scanner.next();
}
scanner.close();

        for(int i=0;i<n;i++) {
            while (index < input[i].length()) {
                //如果是数字
                if (input[i].charAt(index) <= '9' && input[i].charAt(index) >= '0') {
                    numStack.push(parseInt(input[i].substring(index, index + 1)));

                } else if(input[i].charAt(index)=='+'){
                    opeStack.push(input[i].charAt(index));

                }
                else if(input[i].charAt(index)=='-'){
                    opeStack.push(input[i].charAt(index));

                } else if(input[i].charAt(index)=='*'){
                    numStack.push(numStack.pop()*parseInt(input[i].substring(index+1,index+2)));

                    index++;

                }
                else {
                    numStack.push(numStack.pop()/parseInt(input[i].substring(index+1,index+2)));
                    index++;

                }

                index++;
            }
            //输出第i次的判断结果。
            while(!numStack.isEmpty()){

                if(opeStack.isEmpty()) {
                    if(numStack.pop()==24){
                        System.out.println("yes");

                    }
                    else{
                        System.out.println("No");
                    }
                }
                else{
                    if(opeStack.peek()=='+'){

                        opeStack.pop();

                        numStack.push(numStack.pop()+numStack.pop());
                    }
                    else{
                        
                        opeStack.pop();
                        
                        numStack.push(-numStack.pop()+numStack.pop());
                    }




                }

            }

            //下一行输入,index要从0开始入栈。
            index=0;
        }









}

}

  • 写回答

3条回答 默认 最新

  • WindMLATGLS 2022-10-05 15:49
    关注

    把“yes”改成"Yes"加了20分...现在是30分

    评论

报告相同问题?

问题事件

  • 修改了问题 10月5日
  • 修改了问题 10月5日
  • 创建了问题 10月5日

悬赏问题

  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制