به دست آوردن تعداد ارقام یک عدد با استفاده از امکانات یک زبان برنامهنویسی سطح بالا، کار چندان پیچیدهای نیست! برنامهنویسان معمولا برای انجام چنین کاری، ابتدا عدد را به String (رشته) تبدیل کرده و سپس طول رشته را به دست میآورند! گرچه این شیوه به درستی جواب میدهد، اما واقعا این راه اصلی انجام چنین کاری است؟! طبیعتا خیر!
در اینجا قصد داریم تا با استفاده از ریاضیات، تعداد ارقام یک عدد را بدست آوریم!
شرح الگوریتم
اگر بخواهیم طول عدد x را بدست آوریم، فرض کنید مقدار آن برابر 123 است؛ که با نگاه چشمی، میتوان فهمید که تعداد ارقام آن برابر 3 میباشد؛ اما برای فهمیدن آن به زبان ریاضی چه باید کرد؟!
این را میدانیم که:
- هر عدد، میتواند شامل دهگان، صدگان و … باشد!
- 10 اولین عدیست که بیش از یک رقم دارد؛ و اگر آن را در خود ضرب کنیم، اولین عدد صدگان (سه رقمی) به دست خواهد آمد!
10 * 10 = 100
و اگر دوباره در یک 10 دیگر ضرب کنیم؟! بله تعداد ارقام آن چهار تا خواهد شد!
بنابراین با تقسیم یک عدد سه رقمی بر ده، انتظار داریم که یک رقم کمتر شود و با تقسیم مجدد، انتظار داریم که یک رقم دیگر نیز کوچکتر شود!
با این اوصاف، برای به دست آوردن تعداد ارقام یک عدد به روش ریاضیات در برنامهنویسی:
ابتدا به تصویر زیر دقت کنید:
- متغیری برای نگهداشتن تعداد ارقام عدد با پیشفرض 0 تعریف میکنیم. (count)
- عدد ورودی (x) را بر 10 تقسیم کرده و خارج قسمت را به عنوان مقدار جدید x در نظر میگیریم. (x=x/10) تا در ادامه، بقیه تقسیم را روی آن انجام دهیم.
- تعداد ارقام را یک واحد افزایش میدهیم (count=count+1)
- اگر x از صفر کوچکتر بود، بنابراین دیگر قابل تقسیم نیست. پس فرایند تمام شده است.
ولی اگر بزرگتر بود، مرحلهی 2 به بعد را مجددا تکرار میکنیم.
پیادهسازی
این کد در جاوا و سیشارپ پیادهسازی شده ست.
public static int getDigitsCount(int number) { int count = 0; do { number = number / 10; count = count + 1; } while (number > 0); return count; }
تقسیم دو عدد باینری رو هم میشه توضیح بدید؟
سلام. اعداد رو به مبنای 10 تبدیل کنید و سپس تقسیم رو انجام بدید و درنهایت جواب رو به مبنای دو ببرید.
برای ده تا عدد هم بی زحمت میشه توضیح بدین؟ میشه بصورت مجموعه عدد بدیم و بعد مجموعه رو به همین صورت توی الگوریتم قرار بدیم؟
سلام. اینجا فقط الگوریتم رو توضیح دادیم و بقیه موارد به دانش شما از اون زبان برنامه نویسی ای که استفاده میکنین بستگی داره
سلام کد برنامه ای رو میخوام که یک عدد چند رقمی از کاربر بگیره و مجموع ارقام و کوچکترین و بزرگترین.رفم انرا چاپ کند,تشخصی تعداد رقم ها به عهده خودمونِ,برنامه به زبانcباشد لطفا
سلام شما میتونید کمک کنید جواب سوالای امتحان برنامه نویسی c++ رو برام حل کنید؟ با تقبل هزینه!
سلام. تلگرام پیام بدید
سلام میشه بگید باید این برنامه رو چه جوری بنویسم؟
برنامه ای بنویسید که با دریافت عدد طبیعی n از کاربر ، تعداد رقم های غیرصفر آن را محاسبه و چاپ کند.
درود. از دو لینک زیر کمک بگیرید:
– قطعه کد تشخیص وجود داشتن یک عدد در یک عدد
– قطعه کد شمارش تعداد یک عدد در یک عدد دیگر