2 সংখ্যার মধ্যে বৃহত্তর দশমিকের সংখ্যা গণনা করুন


16

আসুন ধরা যাক আমাদের একটি অ-নেতিবাচক পূর্ণসংখ্যা রয়েছে যা "মোটা" (এটি "ভারী") হয় যদি এর গড় অঙ্কের মানটি 7 এর বেশি হয়।

6959 নম্বরটি "মোটা" কারণ:

(6 + 9 + 5 + 9) / 4 = 7.5

1234 নম্বরটি নয়, কারণ:

(1 + 2 + 3 + 4) / 4 = 2.5

কোনও ভাষায় একটি ফাংশন লিখুন,

HeftyDecimalCount(a, b)

যা, যখন দুটি এবং ইতিবাচক পূর্ণসংখ্যার সরবরাহ করা হয় তখন খ এবং বি একটি পূর্ণসংখ্যা প্রদান করে যে কতগুলি "মোটা" পূর্ণসংখ্যা অন্তর অন্তর্ভুক্ত রয়েছে [এ..বি], সমেত।

উদাহরণস্বরূপ, a = 9480 এবং b = 9489 দেওয়া হয়েছে:

9480   (9+4+8+0)/4 21/4 = 5.25 
9481   (9+4+8+1)/4 22/4 = 5.5
9482   (9+4+8+2)/4 23/4 = 5.75  
9483   (9+4+8+3)/4 24/4 = 6    
9484   (9+4+8+4)/4 25/4 = 6.25     
9485   (9+4+8+5)/4 26/4 = 6.5 
9486   (9+4+8+6)/4 27/4 = 6.75  
9487   (9+4+8+7)/4 28/4 = 7
9488   (9+4+8+8)/4 29/4 = 7.25   hefty 
9489   (9+4+8+9)/4 30/4 = 7.5    hefty

এই ব্যাপ্তির দুটি সংখ্যা হ'ল "মোটা" এবং সুতরাং ফাংশনটি 2 এ ফিরে আসা উচিত।

কিছু গাইডলাইন:

  • ধরে নিন যে a বা b 200,000,000 ছাড়িয়েছে না।
  • একটি এন-স্কোয়ারযুক্ত সমাধানটি কাজ করবে, তবে ধীর হবে - আমরা এটিকে দ্রুত সমাধান করতে পারি কী দ্রুত?

2
টিমিয়ুট কী ছুড়েছিল?

উত্তর:


11

ও (পল্লগ (খ)) এ সমস্যার সমাধান করা যেতে পারে।

আমরা f(d, n)n এর চেয়ে কম বা সমান অঙ্কের সংখ্যার সাথে d দশমিক সংখ্যা পর্যন্ত পূর্ণসংখ্যার সংখ্যার হিসাবে সংজ্ঞায়িত করি । দেখা যায় যে এই ফাংশনটি সূত্র দ্বারা দেওয়া হয়েছে

f (d, n)

আসুন সহজ কিছু দিয়ে শুরু করে এই ফাংশনটি উপস্থাপন করি।

h (n, d) = \ বাইনোম {n + d-1} {d-1} = \ বিনোম {(n + 1) + (ডি -1) -1 {{ডি -1}

ফাংশন এইচটি এন + 1 বিভিন্ন উপাদান রয়েছে এমন একটি বহু সেট থেকে d - 1 টি উপাদান বেছে নেওয়ার উপায়গুলির সংখ্যা গণনা করে। এটি ডি বিনে বিভক্ত করার বিভিন্ন উপায়ের সংখ্যা, যা সহজেই ডি -1 বেড়া তৈরি করে এন এর চারপাশে সহজেই দেখা যায় এবং প্রতিটি পৃথক অংশকে সংযুক্ত করে। N = 2, d = 3 'এর উদাহরণ:

3-choose-2     fences        number
-----------------------------------
11             ||11          002
12             |1|1          011
13             |11|          020
22             1||1          101
23             1|1|          110
33             11||          200

সুতরাং, এইচ সমস্ত সংখ্যার n এবং d সংখ্যার যোগফল গণনা করে। বাদে এটি কেবল 10 এর চেয়ে কম এন এর জন্য কাজ করে, যেহেতু অঙ্কগুলি 0 - 9 এর মধ্যে সীমাবদ্ধ। 10 - 19 মানের মানগুলির জন্য এটি ঠিক করতে, আমাদের 9 টিরও বেশি সংখ্যক একটি বিনের সাথে থাকা পার্টিশনের সংখ্যা বিয়োগ করতে হবে, আমি এখন থেকে ওভারফ্লাউন বিনগুলি কল করব।

নিম্নলিখিত পদটিতে h পুনরায় ব্যবহার করে এই শব্দটি গণনা করা যেতে পারে। আমরা n - 10 বিভাজন করার কয়েকটি উপায় গণনা করি, এবং তারপরে 10 টি স্থাপনের জন্য একটি বিন নির্বাচন করি, যার ফলশ্রুতিতে একটি ওভারফ্লাউন বিনের পার্টিশনের সংখ্যা রয়েছে। ফলাফলটি নিম্নলিখিত প্রাথমিক ক্রিয়াকলাপ।

g (n, d) = \ বিনম {n + d-1 {{d-1} - \ বিনোম {d} {1} \ বিনম {n + d-1-10} {d-1}

আমরা n-20 পার্টিশন করার সমস্ত পদ্ধতি গণনা করে n কম বা সমান 29 এর জন্য এভাবেই চালিয়ে যাচ্ছি, তারপরে 2 টি বিন নির্বাচন করুন যেখানে আমরা 10 এর মধ্যে রেখেছি, যার ফলে 2 ওভারফ্লোভন বিনগুলিযুক্ত পার্টিশনের সংখ্যা গণনা করা হচ্ছে।

তবে এই মুহুর্তে আমাদের সাবধানতা অবলম্বন করতে হবে, কারণ আমরা ইতিমধ্যে আগের টার্মটিতে 2 টি ওভারফ্লাউন বিনযুক্ত পার্টিশনগুলি গণনা করেছি। কেবল তা-ই নয়, তবে আমরা তাদের দুটিবার গণনা করেছি। আসুন একটি উদাহরণ ব্যবহার করুন এবং 21 টি যোগফল সহ পার্টিশনটি (10,0,11) দেখুন। আগের শব্দটিতে, আমরা 10 টি বিয়োগ করেছি, বাকি 11 টির সমস্ত পার্টিশন গণনা করেছি এবং 10 টি 3 টি বিনের মধ্যে একটিতে রেখেছি। তবে এই বিশেষ বিভাজন দুটি পদ্ধতির একটিতে পৌঁছানো যেতে পারে:

(10, 0, 1) => (10, 0, 11)
(0, 0, 11) => (10, 0, 11)

যেহেতু আমরা প্রথম বারের মধ্যেও এই পার্টিশনগুলি গণনা করেছি, 2 টি ওভারফ্লাউন বিন সহ মোট পার্টিশনের সংখ্যা 1 - 2 = -1 এর সমান, সুতরাং পরবর্তী শব্দটি যুক্ত করে আমাদের সেগুলি আরও একবার গণনা করা দরকার।

g (n, d) = \ binom {n + d-1} {d-1} - \ binom {d} {1} \ binom {n + d-1-10} {d-1} + \ বিনোম d} {2} \ বিনম {n + d-1-20} {d-1

এই সম্পর্কে আরও কিছু চিন্তা করে, আমরা শীঘ্রই আবিষ্কার করলাম যে একটি নির্দিষ্ট পরিসরে একটি নির্দিষ্ট সংখ্যক ওভারফ্লাউন ডাবের একটি পার্টিশন গণনা করা হয় তা নিম্নলিখিত সারণি দ্বারা প্রকাশ করা যেতে পারে (কলাম i শব্দটি i, সারি জে পার্টিশনের প্রতিনিধিত্ব করে ওভারফ্লাউন বিন)।

1 0 0 0 0 0 . .
1 1 0 0 0 0 . .
1 2 1 0 0 0 . .
1 4 6 4 1 0 . .
. . . . . . 
. . . . . . 

হ্যাঁ, এটি পাস্কালস ত্রিভুজ। কেবলমাত্র আমাদের প্রথম সারিতে / কলামের মধ্যে একটি গণনা আগ্রহী, তা হ'ল শূন্য ওভারফ্লাউন বিন সহ পার্টিশনের সংখ্যা। এবং যেহেতু প্রতিটি সারির বিকল্প যোগফল কিন্তু প্রথমটির সমান 0 হয় (উদাহরণস্বরূপ 1 - 4 + 6 - 4 + 1 = 0), সুতরাং আমরা সেগুলি থেকে মুক্তি পেতে পারি এবং পেনাল্টিমেট সূত্রে পৌঁছাতে পারি।

g (n, d) = \ যোগ_ {i = 0} ^ {d} (-1) ^ i \ binom {d} {i} \ বিনম {n + d-1 - 10i} {d-1

এই ফাংশনটি n এর অঙ্ক-যোগফল সহ d সংখ্যার সাথে সমস্ত সংখ্যা গণনা করে।

এখন, n এর চেয়ে কম অঙ্কের সংখ্যার কী হবে? এটি দেখানোর জন্য আমরা বাইনোমিয়াল প্লাস একটি প্ররোচিত যুক্তির জন্য একটি আদর্শ পুনরাবৃত্তি ব্যবহার করতে পারি

\ বার {এইচ} (এন, ডি) = \ বিনোম + এন + ডি} {ডি} = \ বিনোম + n + ডি-1 {ডি -1} + \ বিনোম + n + ডি-1} {d} = এইচ (এন, ডি) + \ বার {এইচ} (এন -১, ডি)

সর্বাধিক n এর মধ্যে অঙ্ক-যোগফল সহ পার্টিশনের সংখ্যা গণনা করে। এবং এইফ থেকে জি হিসাবে একই আর্গুমেন্ট ব্যবহার করে প্রাপ্ত করা যেতে পারে।

এই সূত্রটি ব্যবহার করে আমরা উদাহরণস্বরূপ 8000 থেকে 8999 পর্যন্ত ব্যবধানে ভারী সংখ্যার সন্ধান করতে পারি 1000 - f(3, 20), কারণ এই বিরতিতে হাজার সংখ্যা রয়েছে এবং আমরা ২৮ এর চেয়ে কম বা সমান সংখ্যার সংখ্যার বিয়োগ করতে হবে প্রথম অঙ্কটি ইতিমধ্যে অঙ্কের 8 টিতে অবদান রাখে এমন একাউন্টে নেওয়ার সময়।

আরও জটিল উদাহরণ হিসাবে 1234..5678 এর বিরতিতে ভারী সংখ্যার সংখ্যাটি দেখি। আমরা প্রথমে 1 এর ধাপে 1234 থেকে 1240 পর্যন্ত যেতে পারি। তারপরে আমরা 10 এর ধাপে 1240 থেকে 1300 পর্যন্ত যেতে পারি উপরের সূত্রটি আমাদের প্রতিটি বিরতিতে ভারী সংখ্যার সংখ্যা দেয়:

1240..1249:  10 - f(1, 28 - (1+2+4))
1250..1259:  10 - f(1, 28 - (1+2+5))
1260..1269:  10 - f(1, 28 - (1+2+6))
1270..1279:  10 - f(1, 28 - (1+2+7))
1280..1289:  10 - f(1, 28 - (1+2+8))
1290..1299:  10 - f(1, 28 - (1+2+9))

এখন আমরা 100 টি পদক্ষেপে 1300 থেকে 2000 এ চলেছি:

1300..1399:  100 - f(2, 28 - (1+3))
1400..1499:  100 - f(2, 28 - (1+4))
1500..1599:  100 - f(2, 28 - (1+5))
1600..1699:  100 - f(2, 28 - (1+6))
1700..1799:  100 - f(2, 28 - (1+7))
1800..1899:  100 - f(2, 28 - (1+8))
1900..1999:  100 - f(2, 28 - (1+9))

1000 এর পদক্ষেপে 2000 থেকে 5000 পর্যন্ত:

2000..2999:  1000 - f(3, 28 - 2)
3000..3999:  1000 - f(3, 28 - 3)
4000..4999:  1000 - f(3, 28 - 4)

এখন আমাদের আবার ধাপের আকারটি হ্রাস করতে হবে, ১০০ পদক্ষেপে 5000 থেকে 5600, 10 পদক্ষেপে 5600 থেকে 5670 থেকে এবং অবশেষে 1 এর পদক্ষেপে 5670 থেকে 5678 পর্যন্ত যেতে হবে।

পাইথন বাস্তবায়ন উদাহরণ (যা ইতিমধ্যে সামান্য অপ্টিমাইজেশন এবং পরীক্ষা পেয়েছে):

def binomial(n, k):
    if k < 0 or k > n:
        return 0
    result = 1
    for i in range(k):
        result *= n - i
        result //= i + 1
    return result

binomial_lut = [
    [1],
    [1, -1],
    [1, -2, 1],
    [1, -3, 3, -1],
    [1, -4, 6, -4, 1],
    [1, -5, 10, -10, 5, -1],
    [1, -6, 15, -20, 15, -6, 1],
    [1, -7, 21, -35, 35, -21, 7, -1],
    [1, -8, 28, -56, 70, -56, 28, -8, 1],
    [1, -9, 36, -84, 126, -126, 84, -36, 9, -1]]

def f(d, n):
    return sum(binomial_lut[d][i] * binomial(n + d - 10*i, d)
               for i in range(d + 1))

def digits(i):
    d = map(int, str(i))
    d.reverse()
    return d

def heavy(a, b):
    b += 1
    a_digits = digits(a)
    b_digits = digits(b)
    a_digits = a_digits + [0] * (len(b_digits) - len(a_digits))
    max_digits = next(i for i in range(len(a_digits) - 1, -1, -1)
                      if a_digits[i] != b_digits[i])
    a_digits = digits(a)
    count = 0
    digit = 0
    while digit < max_digits:
        while a_digits[digit] == 0:
            digit += 1
        inc = 10 ** digit
        for i in range(10 - a_digits[digit]):
            if a + inc > b:
                break
            count += inc - f(digit, 7 * len(a_digits) - sum(a_digits))
            a += inc
            a_digits = digits(a)
    while a < b:
        while digit and a_digits[digit] == b_digits[digit]:
            digit -= 1
        inc = 10 ** digit
        for i in range(b_digits[digit] - a_digits[digit]):
            count += inc - f(digit, 7 * len(a_digits) - sum(a_digits))
            a += inc
            a_digits = digits(a)
    return count

সম্পাদনা করুন : একটি অনুকূলিত সংস্করণ দ্বারা কোডটি প্রতিস্থাপন করা হয়েছে (এটি মূল কোডের চেয়ে আরও খারাপ দেখাচ্ছে)। আমি যখন ছিলাম তখন কয়েকটি কর্নার কেসও স্থির করেছিলাম। heavy(1234, 100000000)আমার মেশিনে প্রায় এক মিলি সেকেন্ড লাগে।


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

1
@ Bob: কোডটি পাইথনে লেখা আছে এবং একেবারেই অপ্টিমাইজ করা হয়নি। আপনি যদি এটি দ্রুত হতে চান তবে এটি সিতে লিখুন তবে খাঁটি পাইথনটিতেও উন্নতির জন্য অনেক জায়গা রয়েছে। অপ্টিমাইজেশন প্রয়োজন প্রথম জিনিস binomial()ফাংশন। আরও কয়েকটি জিনিস রয়েছে যা সহজেই উন্নতি করা যায়। আমি কয়েক মিনিটের মধ্যে একটি আপডেট পোস্ট করব।
সোভেন মারনাচ

অথবা আমরা কেবল প্রাক্পম্পিউটেড এফ (এম, এন) সহ একটি সারণী ব্যবহার করতে পারি। দেওয়া হয়েছে যে 200,000,000 সীমা, মেমরির ব্যবহার ন্যূনতম হওয়া উচিত। (আপনার আমার ইতিমধ্যে +1 আছে)।

@ মরন: এটি অবশ্যই সেরা বিকল্প বলে মনে হচ্ছে - আমি এটি চেষ্টা করব।
সোভেন মারনাচ

@ মরন: আমার উত্স কোডটিতে লুকিং টেবিলটি অন্তর্ভুক্ত করা দরকার। f(d, n)প্রোগ্রামের এক রান চলাকালীন একই পরামিতিগুলির সাথে সাধারণত দুটিবার বলা হয় না।
সোভেন মারনাচ

5

পুনরাবৃত্তি করুন, এবং আদেশ ব্যবহার করুন।

ধরা যাক আমরা একটি সাধারণ ফাংশন সংজ্ঞায়িত করেছি যা x এর চেয়ে ভারী ভারী সহ a এবং b এর মধ্যে মান খুঁজে পায়:

heavy_decimal_count(a,b,x)

আপনার একটি = 8675 থেকে বি = 8689 উদাহরণের সাথে প্রথম অঙ্কটি 8 হয়, তাই এটিকে ফেলে দিন - উত্তরটি 675 থেকে 689 এর মতো হবে এবং আবার 75 থেকে 89 পর্যন্ত হবে।

প্রথম দুটি অঙ্কের গড় ওজন 86 7, তাই বাকি অঙ্কগুলিকে যোগ্যতা অর্জনের জন্য গড়ে 7 এর বেশি ওজনের প্রয়োজন। এইভাবে, কল

heavy_decimal_count(8675,8689,7)

সমতুল্য

heavy_decimal_count(75,89,7)

সুতরাং (নতুন) প্রথম অঙ্কের জন্য আমাদের পরিসরটি এই সম্ভাবনার সাথে 7 থেকে 8 হয়:

7: 5-9
8: 0-9

7 এর জন্য, আমাদের এখনও গড়ে 7 এরও বেশি প্রয়োজন, যা কেবলমাত্র 8 বা 9 এর চূড়ান্ত অঙ্ক থেকে আসতে পারে, যা আমাদের 2 টি সম্ভাব্য মান দেয়।

8 এর জন্য, আমাদের গড়ে গড়ে 6 টিরও বেশি প্রয়োজন, যা কেবলমাত্র 3-9 টির চূড়ান্ত অঙ্ক থেকে আসতে পারে, আমাদের 3 টি সম্ভাব্য মান দেয়।

সুতরাং, 2 + 3 5 টি সম্ভাব্য মান দেয়।

যা ঘটছে তা হল অ্যালগরিদমটি 4-সংখ্যার সংখ্যা দিয়ে শুরু হচ্ছে এবং এটিকে ছোট সমস্যাগুলিতে ভাগ করছে। ফাংশনটি সমস্যাটির সহজ সংস্করণগুলির সাথে বারবার কল করবে যতক্ষণ না এটির কিছু পরিচালনা করতে পারে।


2
সুতরাং আপনি ভারী (886,887) = ভারী (6,7) দাবি করছেন?

@ মরন: না, কারণ প্রথম দুটি 8s ভারী হওয়ার জন্য দোরগোড়াকে পরিবর্তন করেছে। উদাহরণস্বরূপ, প্রথম দুটি 86 ছিল, যা গড় 7 হয় এবং এভাবে প্রান্তিকর পরিবর্তন করে না। (8 + 8 + x) / 3> 7 হলে x> 5। তাই ভারী (886,887,7.0) == ভারী (6,7,5.0)।

@ ফিলিল এইচ, আমি এই ধারণাটি যেভাবে কাজ করবে তা মনে করি না: আপনি যদি 9900 এবং 9999 নেন তবে এটি 0 থেকে 99 এর মধ্যে ভারী হয়ে উঠতে পারে, উদাহরণস্বরূপ 8 টি বিবেচনায় নেওয়া এবং 9908 ভারী সংখ্যা নয় ( @Aryabhatta)।
হ্যান্স রোজম্যান

3

হতে পারে আপনি অনেকগুলি প্রার্থীকে তাদের "ভারাক্রিয়া" জমে এক থেকে বি পর্যন্ত ব্যবধানে এড়িয়ে যেতে পারেন।

আপনি যদি নিজের সংখ্যাটির দৈর্ঘ্য জানেন তবে আপনি জানেন যে প্রতিটি সংখ্যা কেবল 1 / দৈর্ঘ্যের দ্বারা ভারী পরিবর্তন করতে পারে।

সুতরাং, আপনি যদি এমন একটি সংখ্যা থেকে শুরু করেন যা ভারী নয়, আপনি পরবর্তী সংখ্যাটি ভারী বলে গণনা করতে সক্ষম হবেন, যদি আপনি সেগুলি একের সাথে বাড়িয়ে দেন।

আপনার উদাহরণস্বরূপ av 86৮০ গড় = ৫.৫ থেকে শুরু করে, যা আপনার থেকে ভারী সীমানা থেকে -5-৫.৫ = 1.5 পয়েন্ট দূরে রয়েছে, আপনি জানতে পারবেন যে এর মধ্যে 1.5 / (1/4) = 6 সংখ্যা রয়েছে, যা ভারী নয়।

কৌতুক করা উচিত!


একই "ভারী" সংখ্যার সারিতে যায়। আপনি কেবল সংখ্যাটি গণনা করতে পারেন এবং এগুলি এড়িয়ে যেতে পারেন!

1
অঙ্কের সংখ্যায় কেবল সমস্ত কিছুর গুণিত করুন এবং আপনি সেইসব জটিল সমস্যাগুলি থেকে মুক্তি পাবেন /length

1

কিভাবে একটি সাধারণ পুনরাবৃত্তি ফাংশন সম্পর্কে? জিনিসগুলি সহজ রাখতে, এটি digitsঅঙ্কের সাথে সমস্ত ভারী সংখ্যা এবং একটি সংখ্যার ন্যূনতম অঙ্কের গণনা করে min_sum

int count_heavy(int digits,int min_sum) {
  if (digits * 9 < min_sum)//impossible (ie, 2 digits and min_sum=19)
    return 0; //this pruning is what makes it fast

  if (min_sum <= 0)
      return pow(10,digits);//any digit will do,
      // (ie, 2 digits gives 10*10 possibilities)

  if (digits == 1)
  //recursion base
    return 10-min_sum;//only the highest digits

  //recursion step
  int count = 0;
  for (i = 0; i <= 9; i++)
  {
     //let the first digit be i, then
     count += count_heavy(digits - 1, min_sum - i);
  }
  return count;
}

count_heavy(9,7*9+1); //average of 7,thus sum is 7*9, the +1 is 'exceeds'.

এটি অজগরটিতে প্রয়োগ করা হয়েছে এবং এটি 9 ডিজিটের সমস্ত ভারী সংখ্যা digit 2 সেকেন্ডে খুঁজে পেয়েছে। কিছুটা গতিশীল প্রোগ্রামিং এর উন্নতি করতে পারে।


0

এটি একটি সম্ভাব্য সমাধান।

public int heavy_decimal_count(int A, int B)
{
    int count = 0;                       
    for (int i = A; i <= B; i++)
    {
        char[] chrArray = i.ToString().ToCharArray();
        float sum = 0f;
        double average = 0.0f;
        for (int j = 0; j < chrArray.Length; j++)
        {
            sum = sum + (chrArray[j] - '0');                   
        }
        average = sum / chrArray.Length;                
        if (average > 7)
            count++;
    }
    return count;
}

1
কোড গল্ফ স্বাগতম। যদি কোনও প্রশ্নের ইতিমধ্যে উত্তর দেওয়া হয়, তবে বিজয়ী মানদণ্ডগুলির মধ্যে এটির চেয়ে আরও উত্তম হলে তারা আরও উত্তর স্বাগত জানায় বা তারা এর উত্তর দেওয়ার জন্য একটি নতুন এবং আকর্ষণীয় উপায় দেখায়। আপনার উত্তরটি কেমন হয় আমি তা দেখতে পাচ্ছি না।
ugoren

0

সি, অন্তরালের জন্য [ক, খ] এটি ও (বা)

c(n,s,j){return n?c(n/10,s+n%10,j+1):s>7*j;}

HeftyDecimalCount(a,b){int r; for(r=0;a<=b;++a)r+=c(a,0,0); return r;}

//শরীরচর্চা

main()
{
 printf("[9480,9489]=%d\n", HeftyDecimalCount(9480,9489));
 printf("[0,9489000]=%d\n", HeftyDecimalCount(9480,9489000));
 return 0;
}

//ফলাফলগুলো

//[9480,9489]=2
//[0,9489000]=66575

"স্ট্যান্ডার্ড লুফোলস" এর অর্থ কী?
রোজলুপ

1
@Riker এখানে ট্যাগটি নয় <codegolf> এটা <ফাস্ট অ্যালগরিদম> আছে
RosLuP
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.