الگوریتم تعداد ارقام یک عدد به روش ریاضی در برنامه نویسی

الگوریتم تعداد ارقام یک عدد به روش ریاضی در برنامه نویسی

به دست آوردن تعداد ارقام یک عدد با استفاده از امکانات یک زبان برنامه‌نویسی سطح بالا، کار چندان پیچیده‌ای نیست! برنامه‌نویسان معمولا برای انجام چنین کاری، ابتدا عدد را به String (رشته) تبدیل کرده و سپس طول رشته را به دست می‌آورند! گرچه این شیوه به درستی جواب می‌دهد، اما واقعا این راه اصلی انجام چنین کاری است؟! طبیعتا خیر!

در اینجا قصد داریم تا با استفاده از ریاضیات، تعداد ارقام یک عدد را بدست آوریم!

شرح الگوریتم

اگر بخواهیم طول عدد x را بدست آوریم، فرض کنید مقدار آن برابر 123 است؛ که با نگاه چشمی، می‌توان فهمید که تعداد ارقام آن برابر 3 می‌باشد؛ اما برای فهمیدن آن به زبان ریاضی چه باید کرد؟!

این را می‌دانیم که:

  • هر عدد، می‌تواند شامل دهگان، صدگان و … باشد!
  • 10 اولین عدیست که بیش از یک رقم دارد؛ و اگر آن را در خود ضرب کنیم، اولین عدد صدگان (سه رقمی) به دست خواهد آمد!
    10 * 10 = 100
    و اگر دوباره در یک 10 دیگر ضرب کنیم؟! بله تعداد ارقام آن چهار تا خواهد شد!
    بنابراین با تقسیم یک عدد سه رقمی بر ده، انتظار داریم که یک رقم کمتر شود و با تقسیم مجدد، انتظار داریم که یک رقم دیگر نیز کوچکتر شود!

با این اوصاف، برای به دست آوردن تعداد ارقام یک عدد به روش ریاضیات در برنامه‌نویسی:

ابتدا به تصویر زیر دقت کنید:

Untitled-1

 

  1. متغیری برای نگهداشتن تعداد ارقام عدد با پیشفرض 0 تعریف می‌کنیم. (count)
  2. عدد ورودی (x) را بر 10 تقسیم کرده و خارج قسمت را به عنوان مقدار جدید x در نظر میگیریم. (x=x/10) تا در ادامه، بقیه تقسیم را روی آن انجام دهیم.
  3. تعداد ارقام را یک واحد افزایش می‌دهیم (count=count+1)
  4. اگر x از صفر کوچکتر بود، بنابراین دیگر قابل تقسیم نیست. پس فرایند تمام شده است.
    ولی اگر بزرگتر بود، مرحله‌ی 2 به بعد را مجددا تکرار می‌کنیم.

پیاده‌سازی

این کد در جاوا و سی‌شارپ پیاده‌سازی شده ست.

public static int getDigitsCount(int number) {
     int count = 0;
     do {
        number = number / 10;
        count  = count + 1;
     } while (number > 0);
     return count;
 }

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

cp-codfk

نظرات ثبت شده 9 دیدگاه

    1. ویزای آمریکا کاربر مهمان گفت:

      تقسیم دو عدد باینری رو هم میشه توضیح بدید؟

      53
      1. هادی اکبرزاده مدیر سایت گفت:

        سلام. اعداد رو به مبنای 10 تبدیل کنید و سپس تقسیم رو انجام بدید و درنهایت جواب رو به مبنای دو ببرید.

    2. mahsa کاربر مهمان گفت:

      برای ده تا عدد هم بی زحمت میشه توضیح بدین؟ میشه بصورت مجموعه عدد بدیم و بعد مجموعه رو به همین صورت توی الگوریتم قرار بدیم؟

      73
      1. هادی اکبرزاده مدیر سایت گفت:

        سلام. اینجا فقط الگوریتم رو توضیح دادیم و بقیه موارد به دانش شما از اون زبان برنامه نویسی ای که استفاده می‌کنین بستگی داره

    3. Faeze کاربر مهمان گفت:

      سلام کد برنامه ای رو میخوام که یک عدد چند رقمی از کاربر بگیره و مجموع ارقام و کوچکترین و بزرگترین.رفم انرا چاپ کند,تشخصی تعداد رقم ها به عهده خودمونِ,برنامه به زبانcباشد لطفا

      72
    4. hesam کاربر مهمان گفت:

      سلام شما میتونید کمک کنید جواب سوالای امتحان برنامه نویسی c++ رو برام حل کنید؟ با تقبل هزینه!

      77
      1. هادی اکبرزاده مدیر سایت گفت:

        سلام. تلگرام پیام بدید

    5. مليكا مرادي کاربر مهمان گفت:

      سلام میشه بگید باید این برنامه رو چه جوری بنویسم؟

      برنامه ای بنویسید که با دریافت عدد طبیعی n از کاربر ، تعداد رقم های غیرصفر آن را محاسبه و چاپ کند.

      25
      1. هادی اکبرزاده مدیر سایت گفت:

        درود. از دو لینک زیر کمک بگیرید:
        قطعه کد تشخیص وجود داشتن یک عدد در یک عدد
        قطعه کد شمارش تعداد یک عدد در یک عدد دیگر

توضیحات پیشنهادی نظرات اشتراک