首页 > 代码库 > 【HDOJ】2424 Gary's Calculator
【HDOJ】2424 Gary's Calculator
大数乘法加法,直接java A了。
1 import java.util.Scanner; 2 import java.math.BigInteger; 3 4 public class Main { 5 public static void main(String[] args) { 6 Scanner cin = new Scanner(System.in); 7 int n; 8 int i, j, k, tmp; 9 int top;10 boolean flag;11 int t = 0;12 while (cin.hasNext()) {13 n = cin.nextInt();14 for (i=0; i<n; ++i)15 buf[i] = cin.next();16 flag = true;17 if ((n&1) == 0)18 flag = false;19 for (i=0; flag&&i<n; ++i) {20 if ((i & 1) == 1) {21 if (buf[i].charAt(0)!=‘+‘ && buf[i].charAt(0)!=‘*‘)22 flag = false;23 } else {24 if (buf[i].charAt(0)==‘+‘ || buf[i].charAt(0)==‘*‘)25 flag = false;26 }27 }28 System.out.printf("Case %d: ", ++t);29 if (flag==false || n==0) {30 System.out.println("Invalid Expression!");31 continue;32 }33 top = 0;34 bi[top++] = new BigInteger(buf[0]);35 i = 1;36 while (i < n) {37 if (buf[i].charAt(0) == ‘*‘) {38 BigInteger a = bi[top-1];39 BigInteger b = new BigInteger(buf[i+1]);40 bi[top-1] = a.multiply(b);41 } else {42 bi[top++] = new BigInteger(buf[i+1]);43 }44 i += 2;45 }46 BigInteger sum = BigInteger.ZERO;47 for (i=0; i<top; ++i) {48 sum = sum.add(bi[i]);49 }50 System.out.println(sum.toString());51 }52 }53 54 final public static int MAXN = 25;55 public static String[] buf = new String[MAXN];56 public static BigInteger[] bi = new BigInteger[MAXN];57 }
【HDOJ】2424 Gary's Calculator
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。