(Python) Pembahagian integer dan baki


Bahagian integer dan baki

Dalam modul "Ungkapan aritmetik" kami bercakap tentang operasi pembahagian integer.
Mari kita ingat mereka sekali lagi:
// - pembahagian integer, apabila kita membuang bahagian pecahan hasil daripada operasi bahagi
% - pengiraan baki bahagian.
Baki operasi untuk nombor negatif dalam  Python dilaksanakan sedikit berbeza daripada dalam bahasa pengaturcaraan lain seperti C++ atau Pascal
Dalam Python, operasi mengira baki dilakukan mengikut peraturan matematik, iaitu, seperti yang lazimnya dipercayai dalam Teori Nombor, bakinya ialah nombor bukan negatif   (artikel yang sangat berguna 81_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BA%D0%BE%D0%BC" target=" _blank">di sini). Tanda baki adalah sama dengan tanda pembahagi.

Contoh 
c = 10 // 3 # Jawapan: c = 3 d = 10% 3 # Jawapan: d = 1 e = -7 // 4 # Jawapan: e = -2 f = -7% 4 # Jawapan: f = 1 Nilai pembolehubah e dan f ternyata seperti ini kerana  -7 = (-2*4)+1
Perlu diingat!
Dalam Python, operasi mengira baki nombor negatif dilakukan mengikut peraturan matematik, iaitu \(-7\ \%\ 4 = 1 \)< br /> Dalam bahasa pengaturcaraan Python tanda selebihnya adalah sama dengan tanda pembahagi. 

Operasi integer sangat penting dalam pengaturcaraan. Mereka perlu difahami dan digunakan dengan betul. Dan ini memerlukan latihan!

Bahagian integer dan baki

Keperluan untuk menggunakan operasi pengiraan baki bahagian dapat dilihat apabila bekerja dengan digit nombor. 
 
Tugas
Nombor tiga digit diberikan. Paparkan semua digit nombor ini, bermula dengan unit dan dapatkan nombor baharu yang dibentuk dengan mengubah suai unit dan ratusan.

Kami sentiasa memikirkan nombor secara keseluruhan, tetapi jangan lupa bahawa nombor terdiri daripada digit. Bagaimanakah anda memilih semua digit nombor?
Sebenarnya, semuanya diselesaikan dengan mudah, jika anda ingat matematik. Dan matematik memberitahu kita bahawa sebarang nombor boleh diuraikan menjadi jumlah sebutan digit.

Contohnya: 365 = 3*100 + 6*10 + 5*1 .
Kami melihat bahawa setiap digit ialah pengganda bagi istilah bit yang sepadan. 

Kami akan menunjukkan bagaimana untuk mendapatkan setiap digit nombor ke dalam pembolehubah berasingan menggunakan contoh membahagikan dengan lajur dengan nombor 10. Kami mengambil nombor 10, kerana kita mempunyai sistem nombor perpuluhan dan, oleh itu, istilah bit 1, 10, 100, dsb.

  

Menganalisis angka itu, anda dapat melihat bahawa  e = n% 10 # operasi n % 10 - mengira digit terakhir nombor n # (iaitu, digit unit) 365 % 10 = 5 d = n // 10% 10 # operasi n // 10 - mengurangkan nombor sebanyak 10 kali, # iaitu membuang digit terakhir nombor (365 // 10 = 36), # sekarang kita boleh mengira digit puluhan, # menggunakan operasi biasa pada hasil - # hitung baki selepas membahagi dengan nombor 10, 36 % 10 = 6 s = n // 100 # untuk mendapatkan digit ratusan, cukup untuk membuang dua digit dari sebelah kanan nombor, # iaitu dua kali dibahagikan dengan 10 # (n // 10 // 10 atau sama dengan n // 100) 365 // 100 = 3
Mempunyai digit nombor yang disimpan dalam pembolehubah, kita boleh membuat sebarang nombor lain daripadanya dengan mendarab digit yang dikehendaki dengan faktor bit yang sesuai (dengan 1, 10, 100, dsb.): 
Sebagai contoh, baris di bawah akan mendapat nombor baharu daripada nombor asal n, dengan ratusan dan satu disusun semula:
1) digit unit (disimpan dalam  e)  darab dengan 100
2) digit puluhan (disimpan dalam pembolehubah d)  darab dengan 10
3) kita hanya boleh mendarabkan ratusan digit dengan 1, atau hanya mengambil nilai yang disimpan dalam pembolehubah s.
Kemudian nilai dari mata 1, 2 dan 3 hanya perlu ditambah dan kami mendapat nombor baharu: n1 = e*100 + d*10 + s;
Program lengkap akan kelihatan seperti ini: n = int(input()) e = n% 10 d = n // 10% 10 s = n // 100 cetak(e, d, s, e*100 + d*10 + s)