ইংরেজি সংখ্যা গণক


16

চ্যালেঞ্জ

একটি ক্যালকুলেটর লিখুন যা একটি মৌখিক আকারে ইনপুট নেয় (যেমন কোনও সমীকরণ বলতে পারে) এবং একটি মৌখিক আকারে আউটপুট (যেমন কোনও একটি সংখ্যা বলতে পারে)।

বিধি

ক্যালকুলেটর সক্ষম হতে হবে:

  • যোগ, বিয়োগ, গুণ এবং ভাগ
  • নেতিবাচক এক মিলিয়ন এবং এক মিলিয়ন মধ্যে অপারেশন পরিচালনা করুন
  • নেতিবাচক এক বিলিয়ন এবং এক বিলিয়ন মধ্যে আউটপুট পরিচালনা করুন
  • এর ইনপুটটিতে দশমিক পয়েন্টগুলি পরিচালনা করুন এবং এটিকে আউটপুটে সঠিকভাবে রাখুন
  • দশমিক আউটপুটটি শততম স্থানে হ্যান্ডেল করুন, যেখানে প্রয়োজন যেখানে গোল হবে

ভগ্নাংশের ফলাফল প্রাপ্ত সমস্ত ক্রিয়াকলাপটি নিকটতম শততম স্থানে (একইভাবে আউটপুট ফর্ম্যাটিংয়ের সাথে) গোলাকার হওয়া উচিত।

আউটপুট "ই" (ত্রুটির জন্য) দিয়ে প্রতিবেদন করুন যখন ইনপুটটি ভুলভাবে ফর্ম্যাট হওয়ার কারণে বা 0 দ্বারা বিভাজন হওয়ার কারণে প্রোগ্রামটি ব্যর্থ হতে পারে; মূলত, প্রোগ্রামটি খারাপ ইনপুটটিতে ক্রাশ হওয়া উচিত নয়, কারণ এটি লস ক্যালকুলেটর হবে।

ক্যালকুলেটর অনুমোদিত , কিন্তু অপারেন্ডস বা আউটপুট যখন তাদের সীমানা ছেড়ে যায় তখন ত্রুটিগুলি রিপোর্ট করার প্রয়োজন হয় না । এটি সমস্যাটি সহজ করার জন্য বোঝানো হয়েছে, তবে আপনি যদি আমার সাথে একমত নন তবে ত্রুটিগুলি রিপোর্ট না করে বৃহত্তর ক্রিয়াকলাপ এবং আউটপুটগুলি সঠিকভাবে পরিচালনা করতে সক্ষম একটি ক্যালকুলেটরকে নির্দ্বিধায় ফেলতে পারেন।

কোনও অপারেশন অপারেন্ডগুলির জন্য সংজ্ঞায়িত সীমা অতিক্রম করে এমন ইভেন্টে আউটপুট "ই"।

আউটপুট আউটপুটগুলির জন্য বর্ণিত সীমা অতিক্রম করে এমন ইভেন্টে আউটপুট "E"

প্রোগ্রামটি কীভাবে কেস-সংবেদনশীলতা এবং হোয়াইটস্পেস পরিচালনা করে তা ব্রিটিশ বা আমেরিকান ইংরেজির পছন্দ অনুসারে গল্ফার পর্যন্ত ছেড়ে যায়। 1

যে প্রোগ্রামগুলি ইতিমধ্যে বর্ণিত কার্যকারিতাটি ইতিমধ্যে বর্ণিত কার্যকর করেছে এমন কোনও ভাষা বা লাইব্রেরি ব্যবহার করে ক্যালকুলেটরের প্রয়োগকে বাইপাস করেছে তারা বিজয়ের জন্য অযোগ্য হবে।

বিজয়ী

সর্বনিম্ন সংখ্যার অক্ষর সহ প্রোগ্রামটি জয় করে।

উদাহরণ

ইনপুট: দুটি যোগ দুটি
আউটপুট: চার

ইনপুট: একুশ পয়েন্ট পাঁচটি বিয়োগ এক পয়েন্ট পাঁচ
আউটপুট: বিশ twenty

ইনপুট: এক বিয়োগ দুটি
আউটপুট: negative ণাত্মক

ইনপুট: পাঁচ গুণ পাঁচ
আউটপুট: পঁচিশ

ইনপুট: পঁচিশটি ভাগ করে পাঁচটি
আউটপুট: পাঁচটি

ইনপুট: দুই যোগ দুটি বিয়োগ পাঁচ গুণ পাঁচটি ভাগ করে নেতিবাচক শূন্য পয়েন্ট পাঁচ
আউটপুট: দশ

ইনপুট এক মিলিয়ন গুণ এক হাজার
আউটপুট: এক বিলিয়ন

ইনপুট: এক মিলিয়ন গুণ এক হাজার প্লাস ওয়ান
আউটপুট:

ইনপুট: দুই মিলিয়ন প্লাস এক মিলিয়ন
আউটপুট:

ইনপুট: এক মিলিয়ন প্লাস এক মিলিয়ন প্লাস এক মিলিয়ন
আউটপুট:


2
আপনি মূল্যায়নের ক্রমটি কী ব্যবহার করছেন? সাধারণত, two plus two minus five times five divided by negative zero point five-> 2 + 2 - 5 * 5 / -0.5-> 54
মেরিনাস

1
@ মারিনাস দেখতে বাম-থেকে-ডানদিকে কমন মনে হচ্ছে। লক্ষ করার জন্য ধন্যবাদ
জন ডিভোরাক

1
আমরা কি আছে জন্য ব্যর্থ one million oneইনপুটের বা one billion oneআউটপুট উপর? এছাড়াও, 1e6 সীমা বা 1e9 সীমাটি মধ্যবর্তী ফলাফলগুলিতেও প্রযোজ্য?
জন ডিভোরাক

2
@ জানডভোরাক আমি বলতে যাচ্ছি যে যতক্ষণ আপনি সঠিক আউটপুট সরবরাহ করতে পারবেন কোনও কিছুতে (ইনপুট, আউটপুট, মধ্যস্থতার ফলাফল) ব্যর্থ হওয়া প্রয়োজন নয়; ব্যর্থতার উদ্দেশ্যটি ছিল মানুষের পক্ষে সৎ হওয়া সহজ করা।
অতিথি

1
আপনি দশমিক সমর্থন করার বিষয়ে কথা বলছেন তবে সেগুলি কীভাবে পরিচালনা করা হবে তা আপনি সঠিকভাবে নির্দিষ্ট করে দেন না। সঠিক আউটপুট কি জন্য হবে one hundred divided by three point nought? (এছাড়াও, এর Eচেয়ে চূড়ান্ত উদাহরণের আউটপুট কেন three million?)
পিটার টেলর

উত্তর:


6

প্রথমত, এটি সম্পূর্ণ প্রতারণামূলক এবং চশমার সম্পূর্ণ নয়।

--disable-web-securityক্রোম, +22 এ পতাকা প্রয়োজন

জাভাস্ক্রিপ্ট 509 + 22 = 531

x=new XMLHttpRequest;y=Object.keys(x);b=alert;q="querySelectorAll";s="send";x[y[3]]="document";x.open("GET","http://www.wolframalpha.com/input/?i="+escape(prompt()));x[y[10]]=function(c){4===x.readyState&&(w=[].filter.call(x.response[q](".pod h2"),function(a){return"ame:"==a.innerText.slice(-4)})[0].parentElement,(k=w[q]("a")[0])&&"Words only"==k.innerText?(x.open("GET",k.href),x.send()):alert(JSON.parse([].pop.call(x[y[2]][q]("script")).innerHTML.match(/d_0.00\.push\((.+?)\)/)[1]).stringified))};x[s]()

স্পেকের প্রথমটি হ'ল উদাহরণ আউটপুট
ইনপুট two plus two minus five times five divided by negative zero point fiveআউটপুট

এখানে চিত্র বর্ণনা লিখুন

অন্য যে কোনও কেসটি জরিমানা করা উচিত (এখন), এটি এখনও যেমনটি বেশ নিখরচায়, আমি কেবল এটি ঠিক করতে চেয়েছিলাম।

input: two plus two
output: four

input: twenty-one point five minus one point five
output: twenty

input: one minus two
output: negative one

input: five times five
output: twenty-five

input: twenty-five divided by five
output: five

input: two plus two minus five times five divided by negative zero point five
output: fifty-four

input: one million times one thousand
output: one billion

input: one million times one thousand plus one
output: one billion, one

input: two million plus one million:
output: three million

input: one million plus one million plus one million
output: three million

ওহ, এবং আপনি যদি সত্যিই এটি পরীক্ষা করতে যাচ্ছেন তবে এটি কয়েক সেকেন্ড সময় নিতে পারে, কারণ এটি সম্পূর্ণ ওল্ফ্রাম আলফা পৃষ্ঠাটি দুই বার পর্যন্ত লোড করে।

ঠিক আছে, যদিও উন্নত করার জন্য অনেক কিছু থাকতে পারে।


আমি অস্বীকার করতে পারি না যে এটি একটি মজাদার উত্তর, যদিও এটি খুব খারাপ এটি সঠিক ফর্ম্যাটে আউটপুট সরবরাহ করে না। নোট করুন যে শেষ দুটি উদাহরণেরও ভুল আউটপুট রয়েছে। অবশ্যই, এই উত্তরটি কতটা বৈধ তা নিয়েও প্রশ্ন রয়েছে ... যদিও আমি স্পষ্ট করে বলিনি যে আপনি পূর্বের বিদ্যমান কিছু প্রোগ্রাম সম্পর্কে জিজ্ঞাসা করতে পারবেন না, আমি এই ধারণাটি বোঝাতে চেয়েছিলাম যে ইংরেজী থেকে সংখ্যায় অনুবাদ , গণনা, এবং সংখ্যা থেকে ইংরেজী অনুবাদ, গল্ফার দ্বারা প্রয়োগ করা উচিত। এটি নিয়মের আক্ষরিক ব্যাখ্যা পাস করে, যদিও আমি এটি দেব। :)
অতিথি

@ গুয়েস্ট =) আমি সম্পূর্ণরূপে, এর সাথে আপনার সাথে একমত =) প্রকৃত মেন্ট কোডগল্ফের চেয়ে নিয়ম বর্ধন করা মজার উত্তর of আমি আউটপুটগুলি ঠিক করার প্রক্রিয়া করছি এবং একটি নতুন সংস্করণ পোস্ট করব। ওল্ফ্রাম আলফা কেবল চিত্রগুলি ব্যবহার করে, আমাকে এটির ডেটা অ্যাট্রিবিউট হিসাবে সঞ্চারিত করতে কিছুটা সময় নিয়েছিল, বি 64 এনকোডযুক্ত।
C5H8NNaO4

@ গেষ্ট, আপডেট করেছেন। আশা করি ফলাফলগুলি এখন ঠিক আছে =)
C5H8NNaO4

আপনি যদি ম্যাথমেটিকায় এটি করেন তবে সঠিক সংখ্যা দশমিক স্থান দেওয়ার জন্য আউটপুট নিয়ন্ত্রণ করতে পারেন এবং এ জাতীয় (ভগ্নাংশের জন্য এন কী করবে): স্ক্রিনশট

প্রকৃতপক্ষে প্রতারণার সাথে সৃজনশীল হওয়ার জন্য +1, যদিও এটি কোনও জনপ্রিয়তা-প্রতিযোগিতা নয়
nyuszika7h

4

পাইথন, 982

from re import*
S=split
U=sub
a=S(' ',U('_','teen ','zero one two three four five six seven eight nine ten eleven twelve thir_four_fif_six_seven_eigh_nine_')+U('_','ty ','twen_thir_for_fif_six_seven_eigh_nine_'))
b=range(20)+range(20,99,10)
d=dict(zip(a,b))
D=dict(zip(b,a))
p='point'
v='negative'
def f(s):
 s=S('[ -]',s);n=0.;m=10**(p in s and(s.index(p)-len(s)))
 for x in s[::-1]:m*=10*(m<1)+100*('hu'in x)+1e3*('ho'in x)+1e6*('m'in x)or 1;n+=(x in d)and m*d[x]
 return n-2*n*(v in s)
def F(n):
 l=[v]*(n<0);x=abs(n)
 for i in(9,6,3,0):z=int(x/10**i);h=z%100;g=(z>99)*[D[z/100],'hundred']+(h>0)*[h in D and D[h]or D[h-z%10]+'-'+D[z%10]];l+=g and g+[[],['thousand'],['million'],['billion']][i/3];x%=10**i
 l+=[c=='.'and p or D[int(c)]for c in'%.2g'%x][n**2>=1:];return' '.join(l)
c=lambda n,l:c(eval(`n`+l[0]+`f(l[1])`),l[2:])if l else n
i=S(' (?=. )|(?<= .) ',U('di.*?y','/',U('times','*',U('minus','-',U('plus','+',raw_input())))))
try:print F(c(f(i[0]),i[1:]))
except:print'E'

আমি মনে করি এটি চশমা অনুসারে যেমনটি করা উচিত তেমন কাজ করে তবে সম্ভবত আরও কয়েকটি বাগ রয়েছে। এটি ইনপুট> = এক বিলিয়ন বা কোনও অপ্রত্যাশিত শব্দ যা এটি ভুল ব্যাখ্যা করে তা জন্য অদ্ভুতভাবে কাজ করতে পারে।

এখানে কয়েকটি পরিবর্তন সহ কিছুটা আরও পঠনযোগ্য সংস্করণ রয়েছে:

import re
words = re.split(' ', re.sub('_', 'teen ', 'zero one two three four five six seven eight nine ten eleven twelve thir_four_fif_six_seven_eigh_nine_') + re.sub('_', 'ty ', 'twen_thir_for_fif_six_seven_eigh_nine_'))
values = range(20) + range(20, 99, 10)
d = dict(zip(words, values))
D = dict(zip(values, words))

def str_to_num(s):
    s = re.split('[ -]', s)
    n = 0.0
    multiplier = 10 ** ('point' in s and (s.index('point') - len(s)))

    for word in s[::-1]:
        multiplier *= 10 * (multiplier < 1) + 100 * ('hundred' == word) + 1e3 * ('thousand' == word) + 1e6 * ('million' == word) or 1
        n += (word in d) and multiplier * d[word]

    return n - 2 * n * ('negative' in s)


three_digit_num_to_str = lambda n: (n > 99) * [D[n / 100], 'hundred'] + (n % 100 > 0) * [n % 100 in D and D[n % 100] or D[n % 100 - n % 10] + '-' + D[n % 10]]

def num_to_str(n):
    word_list = ['negative'] * (n < 0)
    x = abs(n)

    for i in (9, 6, 3, 0):
        three_digit_str = three_digit_num_to_str(int(x / 10 ** i))
        if three_digit_str:
            word_list += three_digit_str + [[], ['thousand'], ['million'], ['billion']][i / 3]

        x %= 10 ** i

    word_list += [char == '.' and 'point' or D[int(char)] for char in '%.2g' % x][n ** 2 >= 1:]
    return ' '.join(word_list)

calculate = lambda n, l: calculate(eval(str(n) + l[0] + str(str_to_num(l[1]))), l[2:]) if l else n

i = re.split(' (?=. )|(?<= .) ', re.sub('di.*?y', '/', re.sub('times', '*', re.sub('minus', '-', re.sub('plus', '+', raw_input())))))

try:
    print num_to_str(calculate(str_to_num(i[0]), i[1:]))
except:
    print 'E'

1

আমরা শুরু করছি. সংস্করণটি ভেঙে দেওয়ার আগে গল্ফিং করা, তবে এখন আমরা অনলাইনে ফিরে এসেছি। আমি ইতিবাচক এটি আরও গল্ফ করা যেতে পারে। আমি আগামীকাল আরও কাজ করব। এটি গল্ফ করে ছাড়া এটি সঠিকভাবে কাজ করা যথেষ্ট কঠিন ছিল, এবং আমার চোখগুলি এটিকে দেখার জন্য ক্লান্ত হয়ে পড়েছে। হা হা

জাভা - 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);
    }

}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.