Jaki jest numer Armstronga w Javie? To wymagania wstępne i algorytm
Opublikowany: 2021-04-08Spis treści
Jaki jest numer Armstronga?
Dana liczba x nazywana jest liczbą Armstronga rzędu n, jeśli jest równa sumie jej cyfr podniesionych do potęgi n, tj.:
abc= pow(a,n) + pow(b,n) + pow(c,n)
Dodatnia liczba całkowita składająca się z n cyfr jest liczbą Armstronga (rzędu 3), jeśli jest równa sumie sześcianów jej cyfr. Na przykład:
Wejście: 153
Wyjście: Tak
1*1*1 + 5*5*5 + 3*3*3 = 153
Zatem 153 to liczba Armstronga
Wejście: 121
Wyjście: Nie
1*1*1 + 2*2*2 + 1*1*1 = 10
Tak więc 120 nie jest liczbą Armstronga.
Wymagania wstępne i algorytm
W tym artykule nauczymy się sprawdzać, czy numer wejściowy jest liczbą Armstronga, czy nie. W tym celu użyjemy pętli while i pętli for w Javie. Aby zrozumieć ten program, potrzebujemy znajomości następujących tematów w Javie:
- Instrukcja if-else w Javie
- Java dla pętli
- Pętla while i do-while w Javie
Algorytm:
- Weź zmienną całkowitą x
- Wartość jest przypisana do zmiennej x
- Cyfry wartości są podzielone
- Znaleziono wartość kostki każdej cyfry
- Dodaj wartości wszystkich kostek
- Wyjście jest zapisywane do zmiennej sumy
- Jeśli sum=X, wypisz liczbę Armstronga
Jeśli suma != X, drukuj nie liczbę Armstronga
Program do sprawdzania numeru Armstronga w Javie
1. Numer Armstronga w Javie rzędu 3
Kod:
klasa publiczna Armstrong{
public static void main(String[] args) {
int x=0,a,temp;
int n=153;//To numer do sprawdzenia Armstronga
temp=n;
gdy(n>0)
{
a=n%10;
n=n/10;
x=x+(a*a*a);
}
jeśli(temp==x)
System.out.println("Numer Armstronga");
w przeciwnym razie
System.out.println („Nie numer Armstronga”);
}
}
Wyjście:
Wyjaśnienie
Po pierwsze, wartość danej liczby N jest przechowywana w innej zmiennej całkowitej x. Odbywa się to, ponieważ musimy porównać wartości oryginalnej liczby i końcowej liczby na końcu. Pętla while służy do przechodzenia przez liczbę N, aż będzie ona równa 0. Przy każdej iteracji ostatnia cyfra N jest przechowywana w a.
Następnie wynik jest obliczany przez kostkę lub za pomocą Math. pow() i dodanie go do x. Kiedy ostatnia cyfra jest usunięta z N, jest dzielona przez 10. Na koniec =, temp i X są porównywane. Jeśli są równe, jest to liczba Armstronga. W przeciwnym razie tak nie jest.
2. Liczba Armstronga w Javie rzędu n
Kod:
klasa publiczna Armstrong
{
/* Funkcja do obliczenia podniesionej do
moc b */
int power(int a, long b)
{
jeśli( b == 0)
powrót 1;
jeśli (b%2 == 0)
moc zwrotu(a, b/2)*moc(a, b/2);
zwróć a*potęgę(a, b/2)*moc(a, b/2);
}
/* Funkcja obliczania kolejności liczby */
kolejność wewnętrzna (int a)
{
int n = 0;
gdy (a != 0)
{
n++;
a = a/10;
}
powrót n;
}
// Funkcja sprawdzająca, czy podana liczba jest liczbą Armstronga, czy nie
Boole'a Armstronga (int a)
{
// Wywołanie funkcji zamówienia
int n = rząd(a);
int temp=a, suma=0;
podczas (temp!=0)
{
int r = temp%10;
suma = suma + moc(r,n);
temp = temp/10;
}
// Jeśli spełnia warunek Armstronga
zwrot (suma == a);
}
// Program sterownika
public static void main(String[] args)
{
Armstrong obj = nowy Armstrong();
int a = 153;
System.out.println(obj.isArmstrong(a));
a = 1276;
System.out.println(obj.isArmstrong(a));
}
}
Wyjście :
Wyjaśnienie
W tym programie zamiast pętli while użyliśmy rekurencji. Pierwsza funkcja służy do obliczania liczby a podniesionej do potęgi b. Math.pow(a,b) może również służyć do tego samego. Druga funkcja sprawdza kolejność liczby, na przykład 153 jest rzędu 3. Wreszcie, funkcja Boolean Armstrong jest używana do zwrócenia, jeśli liczba to Armstrong, czy nie. Następnie do wywołania funkcji używany jest obiekt klasy Armstrong.
Program Java do drukowania liczb Armstronga w podanym zakresie
Kod:
klasa publiczna Armstrong
{
public static void main(String[] arg)
{
int i=0,x;
System.out.println("Liczby Armstronga od 0 do 999");
podczas (i<1000)
{
x=armstrongOrNie(i);
jeśli(x==i)
System.out.println(i);
i++;
}
}
statyczny int armstrongOrNot(int n)
{
int c,a=0;
podczas(n!=0)
{
c=n%10;
a=a+(c*c*c);
n/=10 ;
}
zwróć;
}
}
Wyjście:
Wyjaśnienie: W tym programie sprawdzana jest każda liczba pomiędzy podanym niskim i wysokim przedziałem. Po każdym czeku suma i liczba cyfr są przywracane do 0.
Wniosek
W tym artykule szczegółowo omówiliśmy numer Armstronga w języku Java. Widzieliśmy, jak sprawdzić, czy liczba jest liczbą Armstronga rzędu n i rzędu 3. Widzieliśmy również, jak można uzyskać wszystkie liczby Armstronga między dolną a górną granicą.
Jeśli chcesz poprawić swoje umiejętności w języku Java, musisz zdobyć te projekty Java. Jeśli chcesz dowiedzieć się więcej o Java, programowaniu z pełnym stosem, sprawdź program Executive PG UpGrad i IIIT-B w zakresie tworzenia pełnego stosu oprogramowania, który jest przeznaczony dla pracujących profesjonalistów i oferuje ponad 500 godzin rygorystycznych szkoleń, ponad 9 projektów i zadania, status absolwentów IIIT-B, praktyczne praktyczne projekty zwieńczenia i pomoc w pracy z najlepszymi firmami.
Jeśli chcesz dowiedzieć się więcej o Javie i zrobić postęp w swojej karierze technicznej, zapoznaj się z bezpłatnym kursem online Java prowadzonym przez największą indyjską firmę zajmującą się edukacją wyższą online, upGrad. Skontaktuj się z nami, aby uzyskać więcej informacji.