Module: (Python) Tamsayı bölme ve kalan


Problem

8 /18


sayıların permütasyonu

Theory Click to read/hide

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)

Problem

Girdi
Klavyeden üç basamaklı doğal bir sayı girilir.

Künye
Sayının basamaklarının boşlukla ayrılmış toplamını ve bir satırda birler ve onlar sıralanarak oluşturulan yeni sayıyı çıkarın.

 

Örnekler
# Girdi Çıktı
1 123 6 132