Java'da Armstrong Sayıları Nasıl Kontrol Edilir?

Java Da Armstrong Sayilari Nasil Kontrol Edilir



Armstrong numarası ”, sayı kalıpları ve matematiksel özellikler hakkında bilgi sağlar. Sayı teorisi kavramlarını anlamada ve sayılar içindeki öz-referanslı ilişkileri keşfetmede yardımcı olur. Ayrıca, verilerin veya kullanıcı girişinin doğruluğunun sağlanmasına yardımcı olur. Giriş bütünlüğünün çok önemli olduğu durumlarda yararlı olabilir.

Bu blog, sağlanan veriler için Armstrong numarasını bulmaya yardımcı olur.







Java'da Armstrong Sayıları Nasıl Kontrol Edilir?

Armstrong numarası ”, belirli bir matematiksel özelliği karşılayan sayıları belirlemek için kontrol edilir. Sağlanan değer, sağlanan değerin toplam tamsayı sayısının gücüne yükseltilen kendi tamsayılarının eklenmesiyle aynıysa.



Şimdi, daha iyi anlamak için bazı örnekleri ziyaret edelim:



Örnek 1: Armstrong Sayılarını Belirleme





Verilen numaranın Armstrong numarası olup olmadığını kontrol etmek için programı ziyaret edin:

java.util.Scanner'ı içe aktarın;
// Gerekli Yardımcı Programları İçe Aktarma.
genel sınıf ArmstrongChecker {
genel statik geçersiz ana ( Sicim [ ] argümanlar )
// Ana ilan etmek ( ) yöntem
{
Tarayıcı demoTest = yeni Tarayıcı ( System.in ) ;
System.out.print ( 'Kontrol edilecek numarayı girin: ' ) ;
int sayıEle = demoTest.nextInt ( ) ;

int origNum = sayıEle;
int haneler = 0 ;
sırasında ( origNum ! = 0 ) {
origNum / = 10 ;
rakamlar++;
}

int toplam = 0 ;
int sıcaklık = sayıEle;
için ( int ben = 0 ; Ben < rakamlar; ben++ ) {
int Sen = sıcaklık % 10 ;
toplam += Math.pow ( Sen , rakamlar ) ;
sıcaklık / = 10 ;
}

eğer ( toplam == isimler ) {
System.out.println ( isimler + ' bir Armstrong sayısıdır.' ) ;
} başka {
System.out.println ( isimler + ' Armstrong Sayısı Koşulunu Karşılamıyor.' ) ;
}
}
}


Yukarıdaki kodun açıklaması:



    • İlk olarak, “ için nesne Tarayıcı ” sınıfı, “ kullanarak son kullanıcıdan bir tamsayı almak için oluşturulur. nextInt() ” yöntemini kullanın ve alınan verileri “ adlı bir değişkende saklayın. İSİMLER ”.
    • Daha sonra, bu alınan değer, “adlı int tipi değişkene atanır. origNum ” ve “ adlı bir değişkeni başlatır. basamak ' ile ' 0 ”.
    • Sonra ' sırasında origNum'u tekrar tekrar 10'a bölen ve origNum 0 olana kadar basamak değişkenini her seferinde artıran ” döngüsü kullanılır.
    • Bundan sonra, bir değişken bildirin ' toplam ” ve “ değerini ayarlayın İSİMLER ” “a sıcaklık ” değişken. Ve “ için “ kadar yinelenen ” döngü basamak ” değişken değeri.
    • Ve her 'for' döngüsü yinelemesinde, ''nin son basamağı sıcaklık ”, modül operatörü kullanılarak çıkarılır ve yeni bir değişkende saklanır” Sen ”. Ardından, basamağın küpü daha sonra '' eklenir. toplam Math.pow() yöntemini kullanan değişken.
    • Sonunda, “ eğer / başka Hesaplanan toplamın kullanıcı tarafından sağlanan orijinal sayıya eşit olup olmadığını belirlemek için ” ifadesi kullanılır. Her iki değer de eşitse, sağlanan sayı bir Armstrong sayısıdır ve bunun tersi de geçerlidir.

Derlemeden sonra:


Çıktı, sağlanan sayının bir Armstrong numarası olduğunu gösterir.

Örnek 2: Sağlanan Limit İçinde Tüm Yerleşik Armstrong Sayılarını Bulun

Sağlanan değer veya sınıra kadar tüm Armstrong sayılarını bulmak için aşağıdaki kodu ziyaret edin:

java.util.Scanner'ı içe aktarın;
java.lang.Math'i içe aktarın;

genel sınıf ArmstsrongNumberExample
{
statik boole isArmsNum ( int j ) {
int tutkunu, şarkıDig = 0 , son = 0 , kalk = 0 ;
devetüyü rengi =j;
sırasında ( devetüyü rengi > 0 ) {
buff = buff / 10 ;
şarkıDig++;
}
buff = j;
sırasında ( devetüyü rengi > 0 )
{
bitiş = buff % 10 ;
hesap += ( Math.pow ( son, şarkıDig ) ) ;
buff = buff / 10 ;
}
eğer ( J ==hesap )
geri dönmek doğru ;
başka geri dönmek YANLIŞ ;
}
genel statik geçersiz ana ( Dize bağımsız değişkenleri [ ] )
// Ana ilan etmek ( ) yöntem
{
int proNum;
Tarayıcı sc = yeni Tarayıcı ( System.in ) ;
System.out.print ( 'Üst Limiti Gir: ' ) ;
proNum =sc.sonrakiInt ( ) ;
System.out.println ( 'Verilen Limite Kadar Armstrong Sayısı' + proNum + ':' ) ;
için ( int k = 0 ; k < =Num için; k++ )
eğer ( isArmsNum ( k ) )
System.out.print ( k+ ', ' ) ;
}
}


Yukarıdaki kodun açıklaması:

    • İlk olarak, 'buff', 'singDig', 'end' ve 'calc' türünde birden çok değişken tanımlayın. int ”, “adlı boole tipi yöntemin içinde isArmsNum() ”. “adlı değişkene atanan bir parametre alır. devetüyü rengi ”.
    • Sonra, “ sırasında ' buff değerine ulaşılana kadar yinelenen ' döngü ilan edilir ' 0 ”. Bundan sonra “ devetüyü rengi ” modülü “ ile 10 ” sağlanan değerden son basamağı kaldırmak ve “ şarkıDig ” değişken.
    • Sonra ' sırasında ” döngüsü “ üzerinden tekrar kullanılır. devetüyü rengi ” son rakamı çıkarmak için değişken. Basamağın küpü “” kullanılarak hesaplanır. Matematik. güç() ” yöntemi ve ardından “ kalk ” değişken.
    • Şimdi ' eğer ifadesinde hesaplanan değerin olup olmadığını kontrol etmek için kullanılır. kalk ” değişkeninin son kullanıcı tarafından sağlanan değere eşit olup olmadığı. Ayrıca, mesajı buna göre görüntüleyin.
    • Bundan sonra, “” yardımıyla son kullanıcıdan girdi alınır. Tarayıcı ' yardımcı programı ' ana() ' yöntem.
    • Sonunda, “ için Sağlanan değere kadar yinelenen ' döngüsü kullanılır ve her yinelemeye ' isArmsNum() ' yöntem. Bu yöntem, sağlanan değere ulaşılana kadar tüm değerleri alır ve her değeri Armstrong sayısı için kontrol eder.

Derlemeden sonra:


Çıktı, '' olan sağlanan değere kadar tüm Armstrong sayılarını görüntüler. 370 ' bu durumda.

Çözüm

Bir Armstrong numarası bulmak için önce verilen sayının içerdiği rakamları sayın. Ardından verilen sayıdan her bir basamağı modül ve bölme işlemleri yardımıyla tek tek çıkarın. Ardından, değerin her bir tamsayısını toplam tamsayı sayısının gücüne yükseltin ve elde edilen değeri yeni bir değişkene ekleyin. Son olarak, elde edilen değişken değerinin sağlanan sayıya eşit olup olmadığını kontrol edin, eğer eşitse, sağlanan sayı bir Armstrong sayısıdır, aksi takdirde değildir.