[蓝桥杯真题]小计算器
藍橋杯真題2:小計算器
import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改public class Main {public static void main(String[] args) {Scanner scan = new Scanner(System.in);int n = scan.nextInt();//接收n行指令long num = 0; //拿来进行加减乘除的数先初始化0int scale = 10;//表示要转换的进制,初始化为10String oper = null;//输入的指令 初始化为nullboolean flag = false;for (int i = 0; i < n; i++) {String order = scan.next();//接收每一行指令//操作switch (order) {case "CLEAR"://重置num = 0;//刚开始重置的第一行 num都是初始值0flag = false;break;case "NUM"://NUM就是你输入的数字if(flag) {//调用compute()//返回一个 Long 对象,该对象保存从键盘接收的 scan.next() 中提取的值//当使用由给出的基数进行解析时 第二个参数 scale //scan.next()是要解析的字符串,scale用于解释 scan.next() 的基数num = compute(oper, num,Long.valueOf(scan.next(),scale));}else {num = Long.valueOf(scan.next(),scale);}break;case "ADD":case "SUB":case "MUL":case "DIV":case "MOD":oper = order;flag = true;break;case "CHANGE"://转换//Integer.parseInt是将字符串转成整形,Integer.toString是将整形转为字符串scale = Integer.parseInt(scan.next());break;case "EQUAL"://输出//Long.toString()将 long 类型的数字转换成指定进制的字符串的方法//参数 num 表示需要转换的 long 类型数字,参数 scale表示转换的进制//如果 scale 不是合法的进制数,将抛出 IllegalArgumentException 异常//toUpperCase() 方法将字符串小写字符转换为大写System.out.println(Long.toString(num,scale).toUpperCase());break;}}scan.close(); }//计算public static long compute(String oper,long num1, long num2) {long res = 0;//每一次经过计算的结果switch (oper) {case "ADD":res = num1 + num2;break;case "SUB":res = num1 - num2;break;case "MUL":res = num1 * num2;break;case "DIV":res = num1 / num2;break;case "MOD":res = num1 % num2;break;default:break;}return res;}
}
Long. tostring()
Java toUpperCase()方法
Long.valueOf()方法