- 看题意,很简单,通俗易懂。代码思路方法如果没找好,会难写,代码长。
- 首先将字符串以“+”分割成数组。注意str.split(“\+”)。
- 再在每个元素比较是否含有“*”,若有先把乘的结果算出来,最后相加。
- 最后关键:int型最大数值:2147483647。题目每个数范围是0-2147483647。最大数乘最大数就足以不满足题意了。所以记得在算完每一个sum或s的时候%10000。
- 输出最后四位数,前导0不输出:最简单快速的方法是用求余。10000001%10000=1
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String str=sc.next();
String[] a=str.split("\\+");
int sum=0;
for(int i=0;i<a.length;i++) {
if(a[i].contains("*")) {
String[] b=a[i].split("\\*");
int s=Integer.parseInt(b[0]);
for(int j=1;j<b.length;j++) {
s=(s*Integer.parseInt(b[j]))%10000;
}
sum+=s;
}else {
sum=(sum+Integer.parseInt(a[i]))%10000;
}
}
System.out.print(sum%10000);
}
}