(پایتون) تقسیم و باقیمانده اعداد صحیح


تقسیم عدد صحیح و باقیمانده

در ماژول "عبارات حسابی" ما در مورد عملیات تقسیم عدد صحیح صحبت کردیم.
بیایید دوباره آنها را به یاد بیاوریم:
// - تقسیم عدد صحیح، زمانی که قسمت کسری را در نتیجه عملیات تقسیم حذف می کنیم
% - محاسبه باقی مانده یک تقسیم.
عملیات باقی مانده برای اعداد منفی در  پایتون کمی متفاوت از سایر زبان های برنامه نویسی مانند C++ یا Pascal اجرا می شود
در پایتون، عملیات محاسبه باقیمانده بر اساس قوانین ریاضی انجام می شود، یعنی همانطور که در نظریه اعداد رایج است، باقیمانده یک عدد غیر منفی است.   (مقاله بسیار مفید 81_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BA%D0%BE%D0%BC" target=" _blank">اینجا). علامت باقیمانده همان علامت مقسم است.

مثال 
<پیش> c = 10 // 3 # پاسخ: c = 3 d = 10% 3 # پاسخ: d = 1 e = -7 // 4 # پاسخ: e = -2 f = -7٪ 4 # پاسخ: f = 1 مقادیر متغیرهای e و f به این صورت است زیرا  <پیش> -7 = (-2*4)+1
باید به خاطر بسپارید!
در پایتون، عملیات محاسبه باقی مانده برای اعداد منفی طبق قوانین ریاضی انجام می شود، یعنی \(-7\ \%\ 4 = 1 \)<. br /> در زبان برنامه نویسی پایتون علامت باقیمانده همان علامت مقسوم است. 

عملیات اعداد صحیح در برنامه نویسی بسیار مهم هستند. آنها باید درک شوند و به درستی مورد استفاده قرار گیرند. و این نیاز به تمرین دارد!

تقسیم عدد صحیح و باقیمانده

هنگام کار با ارقام یک عدد، نیاز به اعمال عملیات محاسبه باقیمانده تقسیم قابل مشاهده است. 
 
وظیفه
یک عدد سه رقمی داده شده است. تمام ارقام این عدد را که با واحدها شروع می شود نمایش دهید و یک عدد جدید با جابجایی واحدها و صدها به دست آورید.

ما همیشه به یک عدد به عنوان یک کل فکر می کنیم، اما فراموش نکنید که اعداد از ارقام تشکیل شده اند. چگونه همه ارقام یک عدد را انتخاب می کنید؟
در واقع، اگر ریاضی را به خاطر داشته باشید، همه چیز به سادگی حل می شود. و ریاضیات به ما می گوید که هر عددی را می توان به مجموع عبارات رقمی تجزیه کرد.

به عنوان مثال: 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)