مستر کد
mrcode.wikibix.ir

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

نویسنده : مینا علی زاده | زمان انتشار : 07 فروردین 1401 ساعت 08:49

جهت انجام پروژه های دانشجویی و یا تمرین‌های برنامه نویسی رشته کامپیوتر میتوانید به آی دی تلگرام زیر پیام دهید

@AlirezaSepand



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

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

شرح الگوریتم

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

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

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

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

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

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

پیاده‌سازی

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

publicstaticintgetDigitsCount(intnumber){

     intcount=0;

     do{

        number=number/10;

        count  =count+1;

     }while(number>0);

     returncount;

}

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

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

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

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


منبع: fullkade.com