(Python) Tamsayı bölme ve kalan


Tamsayı bölme ve kalan

"Aritmetik ifadeler" modülünde tamsayı bölme işlemlerinden bahsettik.
Onları tekrar hatırlayalım:
// - tamsayı bölme, bölme işlemi sonucunda kesirli kısmı attığımız zaman
% - bir bölme işleminin kalanının hesaplanması.
Negatif sayılar için kalan işlemi  Python, C++ veya Pascal gibi diğer programlama dillerinden biraz farklı yürütülür
Python'da kalanı hesaplama işlemi matematiksel kurallara göre yapılır, yani Sayı Teorisinde yaygın olarak inanıldığı gibi kalan negatif olmayan bir sayıdır   (çok faydalı makale 81_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BA%D0%BE%D0%BC" target=" _blank">buraya). Kalanın işareti bölenin işaretiyle aynıdır.

Örnek 
c = 10 // 3 # Cevap: c = 3
d = %10 3 # Cevap: d = 1
e = -7 // 4 # Cevap: e = -2
f = -%7 4 # Cevap: f = 1
e ve f değişkenlerinin değerleri bu şekilde çıktı çünkü 
-7 = (-2*4)+1

Hatırlamanız gerekiyor!
Python'da negatif sayılar için kalanı hesaplama işlemi matematiksel kurallara göre yapılır, yani \(-7\ \%\ 4 = 1 \)< br /> Python programlama dilinde kalan işareti, bölen işaretiyle aynıdır. 

Tamsayı işlemleri programlamada çok önemlidir. Doğru anlaşılmaları ve kullanılmaları gerekir. Ve bu pratik gerektirir!

Tamsayı bölme ve kalan

Bir sayının rakamlarıyla çalışırken bölme işleminin kalanını hesaplama işleminin uygulanması ihtiyacı görünür. 
 
Görev
Üç basamaklı bir sayı verilir. Bu sayının birimlerden başlayarak tüm basamaklarını görüntüleyin ve birimlerin ve yüzlerin sıralanmasıyla oluşan yeni bir sayı elde edin.

Bir sayıyı her zaman bir bütün olarak düşünürüz ama unutmayalım ki sayılar rakamlardan oluşur. Bir sayının tüm rakamlarını nasıl seçersiniz?
Aslında, matematiği hatırlarsanız, her şey oldukça basit bir şekilde çözülür. Ve matematik bize herhangi bir sayının basamaklı terimlerin toplamına ayrıştırılabileceğini söyler.

Örneğin: 365 = 3*100 + 6*10 + 5*1 .
Her basamağın karşılık gelen bit teriminin çarpanı olduğunu görüyoruz. 

Bir sayının her basamağını 10 sayısına göre bir sütuna bölme örneğini kullanarak nasıl ayrı bir değişkene dönüştüreceğimizi göstereceğiz. 10 sayısını alıyoruz çünkü bir ondalık sayı sistemimiz var ve buna göre bit terimleri 1, 10, 100 vb.

  

Rakamı incelerken, 
e = sayı %10
# işlem n % 10 - n sayısının son basamağını hesaplar
# (yani birler basamağı) 365 % 10 = 5

d = n // %10 10
# işlem n // 10 - sayıyı 10 kat azaltır,
# yani sayının son basamağını atar (365 // 10 = 36),
# şimdi onlar basamağını hesaplayabiliriz,
# bilinen işlemi sonuca uygulamak -
# 10 sayısına böldükten sonra kalanı hesapla, 36 % 10 = 6
 
s = n // 100
# yüzler basamağını elde etmek için sayının sağından iki haneyi atmanız yeterlidir,
# yani iki kez 10'a bölünür
# (n // 10 // 10 veya n // 100 ile aynı) 365 // 100 = 3 

Değişkenlerde saklanan sayının basamaklarına sahip olarak, istenen basamağı uygun bit faktörleriyle (1, 10, 100 vb. ile) çarparak bunlardan başka herhangi bir sayı yapabiliriz: 
Örneğin, aşağıdaki satır, orijinal n sayısından, yüzlerce ve birler yeniden düzenlenmiş yeni bir sayı alacaktır:
1) birler basamağı ( e'de saklanır)  100 ile çarp, 
2) onlar basamağı (d değişkeninde saklanır)   10 ile çarpın, 
3) Yüzler basamağını 1 ile kolayca çarpabiliriz veya s değişkeninde saklanan değeri alabiliriz.
Ardından 1, 2 ve 3 noktalarındaki değerler basitçe eklenmeli ve yeni bir sayı elde etmeliyiz:
n1 = e*100 + d*10 + s;

Programın tamamı şöyle görünecek:
n = int(giriş())
e = sayı %10
d = n // %10 10
s = n // 100
print(e, d, s, e*100 + d*10 + s)