تبلیغات

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

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

به دست آوردن تعداد ارقام یک عدد با استفاده از امکانات یک زبان برنامه‌نویسی سطح بالا، کار چندان پیچیده‌ای نیست! برنامه‌نویسان معمولا برای انجام چنین کاری، ابتدا عدد را به 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 به بعد را مجددا تکرار می‌کنیم.

پیاده سازی در جاوا/سی‌شارپ/…

تبلیغات
5 نظر
کانال تلگرام فول کده
تبلیغات

درباره نویسنده

هادی اکبرزاده

[ مدیر فول کده ]

علاقه‌مند به اشتراک گذاری اطلاعات در هر زمینه‌ای / برنامه‌نویس / مدیر فول کده

پاسخ دهید

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

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

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

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

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

    2. mahsa گفت:

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

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

    3. Faeze گفت:

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