تقسیم عدد صحیح و باقیمانده
هنگام کار با ارقام یک عدد، نیاز به اعمال عملیات محاسبه باقیمانده تقسیم قابل مشاهده است.
وظیفه
یک عدد سه رقمی داده شده است. تمام ارقام این عدد را که با واحدها شروع می شود نمایش دهید و یک عدد جدید با جابجایی واحدها و صدها به دست آورید.
ما همیشه به یک عدد به عنوان یک کل فکر می کنیم، اما فراموش نکنید که اعداد از ارقام تشکیل شده اند. چگونه همه ارقام یک عدد را انتخاب می کنید؟
در واقع، اگر ریاضی را به خاطر داشته باشید، همه چیز به سادگی حل می شود. و ریاضیات به ما می گوید که هر عددی را می توان به مجموع عبارات رقمی تجزیه کرد.
به عنوان مثال:
365 = 3*100 + 6*10 + 5*1
.
می بینیم که هر رقم ضریب عبارت بیت مربوطه است.
ما نشان خواهیم داد که چگونه هر رقم یک عدد را با استفاده از مثال تقسیم بر یک ستون بر عدد 10 به یک متغیر جداگانه تبدیل کنیم. عدد 10 را می گیریم، زیرا ما یک سیستم اعداد اعشاری و بر این اساس، عبارت های بیتی 1، 10، 100 و غیره داریم.
با تجزیه و تحلیل شکل، می بینید که
<پیش>
e = n% 10
# عملیات n % 10 - آخرین رقم عدد n را محاسبه می کند
# (یعنی رقم واحد)
365 % 10 = 5
d = n // 10% 10
# عملیات n // 10 - تعداد را 10 برابر کاهش می دهد،
# یعنی آخرین رقم عدد را کنار میگذارد (
365 // 10 = 36)،
# اکنون می توانیم رقم ده ها را محاسبه کنیم،
# اعمال عملیات آشنا در نتیجه -
# باقیمانده را پس از تقسیم بر عدد 10 محاسبه کنید،
36 % 10 = 6
s = n // 100
# برای به دست آوردن رقم صدها، کافی است دو رقم از سمت راست عدد را کنار بگذارید،
# یعنی دو برابر تقسیم بر 10
# (
n // 10 // 10 یا همان
n // 100)
365 // 100 = 3 قوی>
با داشتن ارقام اعداد ذخیره شده در متغیرها، می توانیم با ضرب رقم مورد نظر در فاکتورهای بیت مناسب (در 1، 10، 100 و غیره) هر عدد دیگری از آنها بسازیم:
به عنوان مثال، خط زیر یک عدد جدید از شماره اصلی n
دریافت می کند که صدها و یک ها مرتب شده اند:
1) رقم واحد (ذخیره شده در e
) ضرب در 100
،
2) رقم ده ها (ذخیره شده در متغیر d
) ضرب در 10
،
3) به سادگی می توانیم رقم صدها را در 1
ضرب کنیم، یا به سادگی مقدار ذخیره شده در متغیر s
را بگیریم.
سپس مقادیر نقاط 1، 2 و 3 باید به سادگی اضافه شوند و یک عدد جدید بدست می آوریم:
<پیش>
n1 = e*100 + d*10 + s;
برنامه کامل به شکل زیر خواهد بود:
<پیش>
n = int(input())
e = n% 10
d = n // 10% 10
s = n // 100
چاپ (e, d, s, e*100 + d*10 + s)