Armstrong Numarasını Kontrol Etmek İçin Java Programı

Bu programda, belirli bir sayının sabit sayı olup olmadığını kontrol etmeyi öğreneceksiniz. Java'da bir for döngüsü ve bir while döngüsü kullanarak bunu yapmayı öğreneceksiniz.

Bu örneği anlamak için, aşağıdaki Java programlama konuları hakkında bilgi sahibi olmalısınız:

  • Java sırasında ve yap… Döngü sırasında
  • Java if… else İfadesi
  • Döngü için Java

Pozitif bir tam sayıya Armstrong sıra numarası denir.

abcd… = bir n + b n + c n + d n +…

Armstrong sayısının 3 basamak olması durumunda, her basamağın küplerinin toplamı, sayının kendisine eşittir. Örneğin:

 153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 // 153, bir Armstrong numarasıdır. 

Örnek 1: 3 haneli sayı için Armstrong Numarasını kontrol edin

 public class Armstrong ( public static void main(String() args) ( int number = 371, originalNumber, remainder, result = 0; originalNumber = number; while (originalNumber != 0) ( remainder = originalNumber % 10; result += Math.pow(remainder, 3); originalNumber /= 10; ) if(result == number) System.out.println(number + " is an Armstrong number."); else System.out.println(number + " is not an Armstrong number."); ) )

Çıktı

 371, bir Armstrong numarasıdır.
  • İlk olarak, verilen sayının (sayı) değeri başka bir tamsayı değişkeninde, originalNumber'da saklanır. Bunun nedeni, son sayı ile orijinal sayının değerlerini en sonunda karşılaştırmamız gerektiğidir.
  • Ardından, 0'a eşit olana kadar originalNumber ile döngü yapmak için bir while döngüsü kullanılır.
    • Her yinelemede, num'un son basamağı kalan kısımda saklanır.
    • Daha sonra kalan, Math.pow()function kullanılarak 3 (basamak sayısı) tarafından güçlendirilir ve sonuca eklenir.
    • Ardından, son rakam 10'a bölündükten sonra orijinal Numaradan kaldırılır.
  • Son olarak, sonuç ve sayı karşılaştırılır. Eşitse, bu bir Armstrong numarasıdır. Değilse, değildir.

Örnek 2: Armstrong numarasını n basamak için kontrol edin

 public class Armstrong ( public static void main(String() args) ( int number = 1634, originalNumber, remainder, result = 0, n = 0; originalNumber = number; for (;originalNumber != 0; originalNumber /= 10, ++n); originalNumber = number; for (;originalNumber != 0; originalNumber /= 10) ( remainder = originalNumber % 10; result += Math.pow(remainder, n); ) if(result == number) System.out.println(number + " is an Armstrong number."); else System.out.println(number + " is not an Armstrong number."); ) )

Çıktı

 1634, bir Armstrong numarasıdır.

Bu programda while döngüsü kullanmak yerine iki for döngü kullandık.

İlk for döngüsü, sayıdaki basamakların sayısını saymak için kullanılır. Aşağıdakilerin yoğunlaştırılmış şeklidir:

 for (; originalNumber! = 0; originalNumber / = 10) (n ++;)

İkinci for döngüsü daha sonra sonucu hesaplar; burada her yinelemede, geri kalan n basamak sayısı ile güçlendirilir.

İki aralık arasında tüm sabit sayıları nasıl görüntüleyebileceğinizi öğrenmek için bu sayfayı ziyaret edin.

Ilginç makaleler...