Bir sayının rakamlarıyla çalışırken bölme işleminin kalanını hesaplama işleminin uygulanması ihtiyacı görünür.
Aşağıdaki görevi inceleyelim:
Üç basamaklı bir sayı verilir. Bu sayının tüm basamaklarını görüntüleyin ve permütasyon birimleri ve yüzlerle oluşan yeni bir sayı elde edin
Yeni başlayanlar için ortaya çıkan en zor soru, bir sayıdan basamaklarının nasıl alınacağıdır.
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, sayının ilgili basamağının çarpanı olduğunu görüyoruz.
Sütunları 10 sayısına bölme örneğini kullanarak bir sayının her basamağını nasıl ayrı bir değişkene dönüştüreceğimizi göstereceğiz. (10 sayısını alıyoruz çünkü ondalık sayı sistemimiz var ve buna göre basamak terimlerimiz var 1, 10, 100, vb.)
Rakamı incelerken,
e = n % 10; // n % 10 işlemi - n sayısının (yani sayının birimlerinin) son basamağını hesaplar 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),
// artık bilinen işlemi sonuca uygulayarak onlar sayısını hesaplayabiliriz - 10 sayısıyla bölmenin kalanını hesaplayın, 36 % 10 = 6
s = n / 100; // yüzleri elde etmek için sayının sağından iki haneyi atmak, yani 10'a iki kez bölmek (n / 10 /10 veya n / 100 ile aynı) yeterlidir ) < güçlü>365 / 100 = 3
Sayının kaydedilen basamaklarına sahip olarak, istenen rakamı karşılık gelen basamakla çarparak bunlardan herhangi bir sayı yapabiliriz:
örneğin, aşağıdaki satır orijinal n sayısından, yüzler ve birler yeniden düzenlenmiş olarak yeni bir sayı alacaktır:
1) eski birlerin sayısı (
e değişkeninde saklanan) çarpı
100
2) eski onluk sayı (
d değişkeninde saklanır) 10 ile çarpın
3) eski yüz sayısını 1 ile çarpabilir veya
s değişkeninde saklanan değeri alabiliriz.
Ardından 1, 2 ve 3 noktalarındaki değerleri toplayın ve yeni bir sayı elde edin:
n1 = e * 100 + d * 10 + s;
Tüm program şöyle görünecek:
java.util.Scanner'ı içe aktarın;
genel sınıf Ana {
genel statik geçersiz main(String[] args) {
Tarayıcı girişi = yeni Tarayıcı(System.in);
int n, e, d, s;
n = in.nextInt();
e = n % 10;
d = n / %10 10;
s = n / 100;
System.out.print(e + "" + d + "" + s + "" + (e * 100 + d * 10 + s));
}