بیایید سعی کنیم برنامه ای برای حل مشکل زیر بنویسیم:
شما باید عددی را وارد کنید (بگذارید کمتر از 3,000,000 باشد) و تعداد ارقام آن را تعیین کنید.
ایده راه حل
بیایید شمارنده ارقام یک عدد را شروع کنیم. در ابتدا، شمارنده 0 است. فقط باید به ترتیب آخرین رقم را از عدد جدا کنیم (این کار را می توان با کاهش عدد 10 برابر، با استفاده از تقسیم اعداد صحیح بر 10 انجام داد)، و هر بار باید شمارنده را افزایش دهیم. 1.
در نتیجه بعد از اینکه همه ارقام را قطع کردیم، در شمارنده تعداد ارقام موجود در عدد بدست می آید.
به روشی دیگر، الگوریتم را می توان به صورت زیر فرموله کرد:
تا زمانی که عدد صفر نباشد، آن را 10 بار کاهش دهید و شمارنده را 1 افزایش دهید.
<سر>
شماره (n) |
counter |
<بدن>
123 |
0 |
12 |
1 |
1 |
2 |
0 |
3 |
برنامه به این شکل خواهد بود.
<پیش>
var n، count: integer;
شروع
خواندن (n);
count := 0;
در حالی که n <> 0 برای شروع
شمارش += 1;
n := n div 10;
پایان؛
writeln('Number - ', n, ' حاوی ', count, ' اعداد');
پایان.
شما باید این برنامه را از روی قلب بدانید، زیرا. بر اساس آن، بسیاری از مشکلات دیگر مربوط به محاسبه اعداد با ارقام حل می شود.