আমরা শুরু করছি. সংস্করণটি ভেঙে দেওয়ার আগে গল্ফিং করা, তবে এখন আমরা অনলাইনে ফিরে এসেছি। আমি ইতিবাচক এটি আরও গল্ফ করা যেতে পারে। আমি আগামীকাল আরও কাজ করব। এটি গল্ফ করে ছাড়া এটি সঠিকভাবে কাজ করা যথেষ্ট কঠিন ছিল, এবং আমার চোখগুলি এটিকে দেখার জন্য ক্লান্ত হয়ে পড়েছে। হা হা
জাভা - 3220
import java.util.*;class a{int D=0,i,l,j;static boolean T=true,F=false;enum O{A("plus"),S("minus"),M("times"),D(""),P("point");String t;O(String u){t=u;}double p(double f,double s){if(this==A)f+=s;if(this==S)f-=s;if(this==M)f*=s;if(this==D)f/=s;return f;}static O f(String s){O r=null;for(O o:values())if(s.equals(o.t))r=o;return r;}}enum N{A("zero",0,F),B("one",1,F),C("two",2,F),D("three",3,F),E("four",4,F),AG("five",5,F),G("six",6,F),H("seven",7,F),I("eight",8,F),J("nine",9,F),K("ten",10,F),L("eleven",11,F),M("twelve",12,F),N("thirteen",13,F),O("fourteen",14,F),P("fifteen",15,F),Q("sixteen",16,F),R("seventeen",17,F),S("eighteen",18,F),AH("nineteen",19,F),U("twenty",20,F),V("thirty",30,F),W("forty",40,F),X("fifty",50,F),Y("sixty",60,F),Z("seventy",70,F),AA("eighty",80,F),AB("ninety",90,F),AC("hundred",100,T),AD("thousand",1000,T),AE("million",1000000,T),AF("billion",1000000000,T);String t;double v;boolean q;N(String u,int w,boolean r){t=u;v=w;q=r;}static N f(String s){N r=null;for(N n:values())if(s.equals(n.t))r=n;return r;}static N f(char s){return d(q(""+s));}static N d(double v){N r=null;for(N n:values())if(v==n.v)r=n;return r;}static String c(double n){return d(n).t;}}public static void main(String[]a){new a();}a(){while(T){try{List p=p(new Scanner(System.in).nextLine()),t=new ArrayList();double d=0;for(j=0;j<p.size();j++){Object o=p.get(j);if(o(o)){if((O)o==O.P){t.add((d(t.get(t.size()-1))+((d=d(p.get(j+1)))<10?d*=100:d<100?d*=10:d)/1000));t.remove(t.size()-2);j++;}else t.add(o);}else {N n=N.d(d(o));if(n!=null&&n.q){t.add((d(o))*d(t.get(t.size()-1)));t.remove(t.size()-2);}else t.add(o);}}double r=d(t.get(0));for(j=1;j<t.size();j++){Object c=t.get(j),l=t.get(j-1);if(o(c))continue;if(c instanceof Double&&l instanceof Double)r+=d(c);else r=((O)t.get(j-1)).p(r,d(t.get(j)));}System.out.println(p(r));}catch(Exception e){System.out.println("E");}}}List p(String s) {List r=new ArrayList();Scanner i=new Scanner(s);while(i.hasNext()){String c=i.next();if(c.equals("divided")){r.add(O.D);i.next();}else if(c.indexOf("-")!=-1){String[] num=c.split("-");r.add(N.f(num[0]).v+N.f(num[1]).v);}else{Object o=N.f(c);r.add(o!=null?((N)o).v:O.f(c));}}return r;}String p(double n){String a=String.valueOf(n),w,d=null,b="";l=a.indexOf(".");if(l!=-1){w=a.substring(0,l);d=a.substring(l+1);}else w=a;if(d.equals("0"))d=null;D=0;while(w.length()%3!=0)w=" "+w;for(i=w.length();i>0;i-=3,D++)b=w(w.substring(i-3,i))+b;return b+d(d);}String w(String w) {if(w==null)return "";w=w.trim();String b="";l=w.length();if(l>1&&w.charAt(l-2)!='0'){if(w.charAt(l-2)=='1')b=N.d(q(w.substring(l-2))).t;else b+=N.d(q(w.charAt(l-2)+"0")).t+"-"+N.f(w.charAt(l-1)).t;}for(j=(b.equals("")?l-1:l-3);j>-1;j--){N n=N.f(w.charAt(j));if(n==N.A)continue;if(j==l-1)b=n.t;else if(j==l-2)b=N.f(n.t+"0")+"-"+b;else if(j==l-3)b=n.t+" hundred "+b;}if(!b.trim().equals("")){if(D==1)b+=" thousand ";if(D==2)b+=" million ";if(D==3)b+=" billion ";}return b;}String d(String d) {if(d==null)return"";if(d.length()>3)d=d.substring(0,3);String b = " point ";for(char n:d.toCharArray())b+=N.f(n).t+" ";return b;}boolean o(Object o){return o instanceof O;}Double d(Object o){return (Double)o;}static double q(String s){return Double.parseDouble(s);}}
লাইন ব্রেক এবং ট্যাব সহ With
import java.util.*;
class a{
int D=0,i,l,j;
static boolean T=true,F=false;
enum O{
A("plus"),
S("minus"),
M("times"),
D(""),
P("point");
String t;
O(String u){
t=u;
}
double p(double f,double s){
if(this==A)f+=s;
if(this==S)f-=s;
if(this==M)f*=s;
if(this==D)f/=s;
return f;
}
static O f(String s){
O r=null;
for(O o:values())if(s.equals(o.t))r=o;
return r;
}
}
enum N{
A("zero",0,F),
B("one",1,F),
C("two",2,F),
D("three",3,F),
E("four",4,F),
AG("five",5,F),
G("six",6,F),
H("seven",7,F),
I("eight",8,F),
J("nine",9,F),
K("ten",10,F),
L("eleven",11,F),
M("twelve",12,F),
N("thirteen",13,F),
O("fourteen",14,F),
P("fifteen",15,F),
Q("sixteen",16,F),
R("seventeen",17,F),
S("eighteen",18,F),
AH("nineteen",19,F),
U("twenty",20,F),
V("thirty",30,F),
W("forty",40,F),
X("fifty",50,F),
Y("sixty",60,F),
Z("seventy",70,F),
AA("eighty",80,F),
AB("ninety",90,F),
AC("hundred",100,T),
AD("thousand",1000,T),
AE("million",1000000,T),
AF("billion",1000000000,T);
String t;
double v;
boolean q;
N(String u,int w,boolean r){
t=u;
v=w;
q=r;
}
static N f(String s){
N r=null;
for(N n:values())if(s.equals(n.t))r=n;
return r;
}
static N f(char s){
return d(q(""+s));
}
static N d(double v){
N r=null;
for(N n:values())if(v==n.v)r=n;
return r;
}
static String c(double n){
return d(n).t;
}
}
public static void main(String[]a){
new a();
}
a(){
while(T){
try{
List p=p(new Scanner(System.in).nextLine()),t=new ArrayList();
double d=0;
for(j=0;j<p.size();j++){
Object o=p.get(j);
if(o(o)){
if((O)o==O.P){
t.add((d(t.get(t.size()-1))+((d=d(p.get(j+1)))<10?d*=100:d<100?d*=10:d)/1000));
t.remove(t.size()-2);
j++;
}
else t.add(o);
}
else {
N n=N.d(d(o));
if(n!=null&&n.q){
t.add((d(o))*d(t.get(t.size()-1)));
t.remove(t.size()-2);
}
else t.add(o);
}
}
double r=d(t.get(0));
for(j=1;j<t.size();j++){
Object c=t.get(j),l=t.get(j-1);
if(o(c))continue;
if(c instanceof Double&&l instanceof Double)r+=d(c);
else r=((O)t.get(j-1)).p(r,d(t.get(j)));
}
System.out.println(p(r));
}
catch(Exception e){
System.out.println("E");
}
}
}
List p(String s) {
List r=new ArrayList();
Scanner i=new Scanner(s);
while(i.hasNext()){
String c=i.next();
if(c.equals("divided")){
r.add(O.D);
i.next();
}
else if(c.indexOf("-")!=-1){
String[] num=c.split("-");
r.add(N.f(num[0]).v+N.f(num[1]).v);
}
else{
Object o=N.f(c);
r.add(o!=null?((N)o).v:O.f(c));
}
}
return r;
}
String p(double n){
String a=String.valueOf(n),w,d=null,b="";
l=a.indexOf(".");
if(l!=-1){
w=a.substring(0,l);
d=a.substring(l+1);
}
else w=a;
if(d.equals("0"))d=null;
D=0;
while(w.length()%3!=0)w=" "+w;
for(i=w.length();i>0;i-=3,D++)b=w(w.substring(i-3,i))+b;
return b+d(d);
}
String w(String w) {
if(w==null)return "";
w=w.trim();
String b="";
l=w.length();
if(l>1&&w.charAt(l-2)!='0'){
if(w.charAt(l-2)=='1')b=N.d(q(w.substring(l-2))).t;
else b+=N.d(q(w.charAt(l-2)+"0")).t+"-"+N.f(w.charAt(l-1)).t;
}
for(j=(b.equals("")?l-1:l-3);j>-1;j--){
N n=N.f(w.charAt(j));
if(n==N.A)continue;
if(j==l-1)b=n.t;
else if(j==l-2)b=N.f(n.t+"0")+"-"+b;
else if(j==l-3)b=n.t+" hundred "+b;
}
if(!b.trim().equals("")){
if(D==1)b+=" thousand ";
if(D==2)b+=" million ";
if(D==3)b+=" billion ";
}
return b;
}
String d(String d) {
if(d==null)return"";
if(d.length()>3)d=d.substring(0,3);
String b = " point ";
for(char n:d.toCharArray())b+=N.f(n).t+" ";
return b;
}
boolean o(Object o){
return o instanceof O;
}
Double d(Object o){
return (Double)o;
}
static double q(String s){
return Double.parseDouble(s);
}
}
two plus two minus five times five divided by negative zero point five
->2 + 2 - 5 * 5 / -0.5
->54
।