Java'daki Armstrong Numarası nedir? Önkoşullar ve Algoritma

Yayınlanan: 2021-04-08

İçindekiler

Armstrong Numarası nedir?

Belirli bir x sayısı, n kuvvetine yükseltilmiş basamaklarının toplamına eşitse, n sıralı Armstrong sayısı olarak adlandırılır, yani:

abc= pow(a,n) + pow(b,n) + pow(c,n)

n basamaklı pozitif bir tamsayı, basamaklarının küplerinin toplamına eşitse, Armstrong sayısı (3. dereceden) olur. Örneğin:

Giriş: 153

Çıkış: Evet

1*1*1 + 5*5*5 + 3*3*3 = 153

153 bir Armstrong sayısıdır.

Giriş: 121

Çıkış: Hayır

1*1*1 + 2*2*2 + 1*1*1 = 10

Bu nedenle, 120 bir Armstrong sayısı değildir.

Önkoşullar ve Algoritma

Bu yazıda, bir giriş numarasının bir Armstrong numarası olup olmadığını kontrol etmeyi öğreneceğiz. Bunun için Java'da while döngüsü ve for döngüsü kullanacağız. Bu programı anlamak için Java'da aşağıdaki konular hakkında bilgi sahibi olmamız gerekir:

  • Java if-else ifadesi
  • Döngü için Java
  • Java while ve do-while döngüsü

algoritma:

  1. bir tamsayı değişkeni alın x
  2. x değişkenine değer atanır
  3. Değerin basamakları bölünür
  4. Her basamağın küp değeri bulunur
  5. Tüm küplerin değerlerini ekleyin
  6. Çıktı toplama değişkenine kaydedilir
  7. Toplam=X ise, Armstrong sayısını yazdırın

Toplam != X ise, Armstrong numarasını yazdırmayın

Java'da Armstrong Numarasını Kontrol Etme Programı

1. Java'da 3. sıradaki Armstrong numarası

Kod:

genel sınıf Armstrong{

public static void main(String[] args) {

int x=0,a,temp;

int n=153;//Armstrong'u kontrol edecek sayıdır

sıcaklık=n;

süre(n>0)

{

a=n%10;

n=n/10;

x=x+(a*a*a);

}

if(temp==x)

System.out.println(“Armstrong numarası”);

Başka

System.out.println(“Armstrong numarası değil”);

}

}

Çıktı:

Açıklama

İlk olarak, belirli bir N sayısının değeri başka bir tamsayı değişkeni olan x'te saklanır. Bu, orijinal sayının değerlerini ve sonundaki son sayıyı karşılaştırmamız gerektiğinden yapılır. N sayısı 0'a eşit olana kadar dolaşmak için bir while döngüsü kullanılır. Her yinelemede, N'nin son basamağı a'da saklanır.

Daha sonra sonuç a'nın küpü alınarak veya Math kullanılarak hesaplanır. pow() ve onu x'e ekleyerek. N'den son rakam çıkarıldığında 10'a bölünür. Son olarak =, temp ve X karşılaştırılır. Eşitlerse, bu bir Armstrong sayısıdır. Aksi takdirde, değildir.

2. Java'da n sıralı Armstrong sayısı

Kod:

genel sınıf Armstrong

{

/* Yükseltilmiş bir değeri hesaplamak için fonksiyon

güç b */

int güç(int a, uzun b)

{

if( b == 0)

dönüş 1;

eğer (b%2 == 0)

dönüş gücü(a, b/2)*güç(a, b/2);

dönüş a*kuvvet(a, b/2)*kuvvet(a, b/2);

}

/* Sayının sırasını hesaplama işlevi */

int sıra(int a)

{

int n = 0;

süre (a != 0)

{

n++;

a = a/10;

}

dönüş n;

}

// Verilen sayının Armstrong sayısı olup olmadığını kontrol eden fonksiyon

boolean Armstrong (int a)

{

// order fonksiyonunun çağrılması

int n = sıra(a);

int sıcaklık=a, toplam=0;

süre (sıcaklık!=0)

{

int r = sıcaklık%10;

toplam = toplam + kuvvet(r,n);

sıcaklık = sıcaklık/10;

}

// Armstrong koşulunu sağlıyorsa

dönüş (toplam == a);

}

// Sürücü Programı

public static void main(String[] args)

{

Armstrong nesnesi = yeni Armstrong();

int a = 153;

System.out.println(obj.isArmstrong(a));

a = 1276;

System.out.println(obj.isArmstrong(a));

}

}

çıktı :

Açıklama

Bu programda while döngüsü yerine özyineleme kullandık. İlk fonksiyon, b'ye yükseltilmiş bir sayıyı hesaplamak için kullanılır. Math.pow(a,b) de aynı şekilde kullanılabilir. İkinci işlev, sayının sırasını kontrol eder, örneğin 153'ün 3. sıradaki olup olmadığı. Son olarak, sayının Armstrong olup olmadığını döndürmek için bir Boolean işlevi Armstrong kullanılır. Ardından, işlevleri çağırmak için Armstrong sınıfının bir nesnesi kullanılır.

Armstrong Sayılarını Verilen Aralıkta Basmak için Java Programı

Kod:

genel sınıf Armstrong

{

public static void main(String[] arg)

{

int i=0,x;

System.out.println(“0 ile 999 arasındaki Armstrong sayıları”);

süre(i<1000)

{

x=armstrongOrNot(i);

if(x==i)

System.out.println(i);

ben++;

}

}

statik int armstrongOrNot(int n)

{

int c,a=0;

süre(n!=0)

{

c=n%10;

a=a+(c*c*c);

n/=10 ;

}

bir dönüş;

}

}

Çıktı:

Açıklama: Bu programda verilen alt ve üst aralığı arasındaki her sayı kontrol edilir. Her kontrolü gönderin, rakamların toplamı ve sayısı 0'a geri yüklenir.

Çözüm

Bu yazıda java'da bir Armstrong numarasını ayrıntılı olarak ele aldık. Bir sayının n ve 3. sıradaki Armstrong sayısı olup olmadığını nasıl kontrol edeceğimizi gördük. Ayrıca alt ve üst sınır arasındaki tüm Armstrong sayılarını nasıl elde edebileceğinizi gördük.

Java becerilerinizi geliştirmek istiyorsanız, bu java projelerine el atmanız gerekir. Java, full-stack geliştirme hakkında daha fazla bilgi edinmek istiyorsanız, upGrad & IIIT-B'nin çalışan profesyoneller için tasarlanmış ve 500+ saatlik zorlu eğitim, 9+ proje sunan Full-stack Yazılım Geliştirmede Yönetici PG Programına göz atın , ve ödevler, IIIT-B Mezun statüsü, pratik uygulamalı bitirme projeleri ve en iyi firmalarla iş yardımı.

Java hakkında daha fazla bilgi edinmek ve teknik kariyerinizde ilerlemek istiyorsanız, Hindistan'ın en büyük çevrimiçi yüksek öğrenim şirketi upGrad'ın ücretsiz çevrimiçi Java kursunu keşfedin. Daha fazla bilgi için bizimle iletişime geçin.

Tam Yığın Geliştirici Olun

YAZILIM GELİŞTİRMEDE YÜKSELTME VE IIIT-BANGALORE'NİN PG DİPLOMASI
ŞİMDİ KAYDOLUN @ YÜKSELTME