后缀表达式 大整数(加法、乘法、gcd java)

 import java.math.BigInteger;
import java.util.Scanner; class Work {
String str;
int _num,_sym;
int []sym=new int[1000];
BigInteger []num=new BigInteger[1000];
int []w=new int[1000]; Work() {
BigInteger x,y;
int wx,wy;
Scanner in=new Scanner(System.in);
str=in.nextLine();
work();
x=num[1];
wx=w[1];
str=in.nextLine();
work();
y=num[1];
wy=w[1]; if (wx>wy)
System.out.println("1/0");
else if (wx<wy)
System.out.println("0/1");
else
{
BigInteger z;
z=x.gcd(y);
x=x.divide(z);
y=y.divide(z);
System.out.print(x+"/"+y);
}
in.close();
} void cal()
{
if (sym[_sym]==2)
{
if (w[_num-1]<w[_num])
{
w[_num-1]=w[_num];
num[_num-1]=num[_num];
}
else if (w[_num-1]==w[_num])
num[_num-1]=num[_num-1].add(num[_num]);
}
else if (sym[_sym]==3)
{
w[_num-1]+=w[_num];
num[_num-1]=num[_num-1].multiply(num[_num]);
}
_sym--;
_num--;
} void work()
{
int len,i;
BigInteger z;
len=str.length();
z=BigInteger.valueOf(1);
_num=0;
_sym=0;
sym[0]=0; for (i=0;i<len;i++)
{
if (str.charAt(i)=='x')
{
num[++_num]=z;
w[_num]=1;
}
else
{
switch(str.charAt(i))
{
case '+':
while (sym[_sym]>=2)
cal();
sym[++_sym]=2;
break;
case '*':
while (sym[_sym]>=3)
cal();
sym[++_sym]=3;
break;
case '(':
sym[++_sym]=1;
break;
case ')':
while (sym[_sym]!=1)
cal();
_sym--;
break;
}
}
}
while (_sym>0)
cal();
}
} public class Main {
public static void main(String[] args) {
Work work=new Work();
}
}

最新文章

  1. Mac使用总结
  2. BPMN流程图的绘制的注意要点
  3. 用jQuery实现限制输入字数的文本框
  4. poj1160 dp
  5. IOS开发之格式化日期时间
  6. ACM算法
  7. c# 关于10进制和16进制转换以及显示
  8. wefwewewe
  9. html笔记2
  10. HighCharts之气泡图报错
  11. [JavaScript] audio在浏览器中自动播放
  12. How To Install MySQL on Ubuntu 16.04
  13. Windows server 2008 r2下载地址和激活破解方法
  14. 在使用Vs2013打开Vs2008的解决方案时出现了以下错误:此版本的应用程序不支持其项目类型(.csproj)
  15. Windows Apache Django 配置
  16. CentOS 7配置静态IP地址
  17. hadoop安装时报错 /usr/local/hadoop-2.6.0-stable/hadoop-2.6.0-src/hadoop-hdfs-project/hadoop-hdfs/target/findbugsXml.xml does not exist
  18. datatable去掉表头默认排序
  19. BZOJ3289 Mato的文件管理 【莫队 + 树状数组】
  20. 静态html引入js添加随机数后缀防止缓存

热门文章

  1. ipcs命令详解
  2. BugPhobia准备篇章:Beta阶段前后端接口文档
  3. 爱码室Crawler &amp; classification module项目工作分配
  4. 20162328蔡文琛 大二week07
  5. git 的认识
  6. Software Defined Networking(Week 2, part 2)
  7. vue之Mutations 理解
  8. Alpha阶段敏捷冲刺②
  9. TP5 助手函数与TP3.2单字母函数
  10. vue 大概流程(未完)