Czytelnicy tacy jak ty pomagają wspierać MUO. Kiedy dokonujesz zakupu za pomocą linków na naszej stronie, możemy otrzymać prowizję partnerską. Czytaj więcej.

Liczba Armstronga to kluczowa koncepcja w dziedzinie szyfrowania i deszyfrowania dla bezpieczeństwa danych.

Ogólna koncepcja przetwarzania cyfr liczby jest podstawową techniką. Za pomocą tego podejścia można rozwiązać wiele zadań, takich jak sumowanie cyfr, uzyskiwanie iloczynu cyfr, liczenie cyfr i odwracanie liczby.

Ale co to jest liczba Armstronga i jak ją sprawdzić?

Co to jest liczba Armstronga?

Liczba Armstronga to liczba, której suma sześcianów jej cyfr jest równa samej liczbie. Na przykład 153 to liczba Armstronga. Jeśli weźmiesz cyfry 153 indywidualnie i ułożysz je w kostkę:

(1 × 1 × 1) + (5 × 5 × 5) + (3 × 3 × 3)

Następnie dodaj wyniki:

1 + 125 + 27

Otrzymasz 153, czyli tyle samo, co oryginalny numer.

Algorytm znajdowania liczby Armstronga

Napisanie algorytmu to pierwszy krok do wdrożenia dowolnego programu. Możesz użyć algorytmu jako odniesienia do napisania pseudokodu, a następnie zaimplementować go przy użyciu żądanego języka programowania. Algorytm podaje dokładną serię instrukcji do wykonania, eliminując błędy logiczne i upraszczając implementację.

instagram viewer

Oto algorytm sprawdzania, czy liczba jest liczbą Armstronga, czy nie:

  1. Zadeklaruj zmienne sum, temp, n, r
  2. Weź wartość n od użytkownika
  3. Zainicjuj sumę zmiennych na 0 i wykonaj kopię zapasową n jako temp = n
  4. Powtórz kroki 5 - 7, gdy n > 0
  5. r = n % 10
  6. suma = suma + sześcian każdej cyfry (r × r × r)
  7. n = n / 10
  8. Jeśli suma równa się temp., wyświetl komunikat „Liczba jest liczbą Armstronga”
  9. W przeciwnym razie wyświetl „Liczba nie jest liczbą Armstronga”

Pseudokod do implementacji algorytmu Armstronga

Pseudokod może być przydatnym krokiem w projektowaniu implementacji algorytmu. Napisanie pseudokodu pomaga łatwo przekonwertować go na kod w dowolnym języku programowania. Oto pseudokod implementacji liczby Armstronga:

Program Armstronga w C

Obserwuj powyższy pseudokod i przekonwertuj każdą instrukcję na kod C.

Zacznij od importu stdio.h do wykonywania operacji wejścia i wyjścia. zadeklarować główny funkcji i przystąpić do realizacji logiki programu. Używać N zapamiętać numer wejścia, R zapamiętać poszczególne cyfry numeru, suma przechowywać sumę kostek cyfr i temp aby zapisać kopię numeru.

Użyj drukujf funkcję, aby poprosić użytkownika o wprowadzenie numeru. Użyj skanf funkcja, aby odczytać liczbę i zapisać ją w zmiennej N. %D jest specyfikatorem formatu dziesiętnego, który przyjmuje liczbę całkowitą jako dane wejściowe.

Usuń wszelkie wartości śmieci, inicjując sumę jako zero i wykonaj kopię zapasową n jako temp.

#włączać <stdio.h>

intgłówny()
{
int n, r, suma, temp;
printf("Proszę wpisać numer: ");
skanf("%D", &N);
suma = 0; temperatura = n;

zadeklarować chwila pętla, która działa, dopóki liczba nie będzie równa zero lub mniej. Wewnątrz pętli znajduje się trzyetapowy proces, którego można używać w różnych innych zadaniach programistycznych. Te trzy kroki to:

  1. Uzyskaj pojedynczą cyfrę liczby, biorąc moduł liczby za pomocą 10. Kiedy dzielisz dowolną liczbę przez 10 jako całość, reszta jest samą ostatnią cyfrą. Na przykład, gdy dzielisz 153 przez 10, wynikiem jest liczba całkowita 15, a moduł 3.
  2. Mając pojedynczą cyfrę, możesz wykonać żądaną operację. Aby znaleźć liczbę Armstronga, żądaną operacją jest suma sześcianów cyfr tej liczby. Weź sześcian cyfry r i dodaj go do zmiennej sumy.
  3. Wyeliminuj ostatnią cyfrę liczby, dzieląc ją przez 10. Dzieląc przez 10, otrzymujesz iloraz, w tym przypadku 15.
chwila (n > 0) {
r = n% 10;
suma = suma + (r * r * r);
n = n/10;
}

Sprawdź, czy otrzymana suma jest równa oryginalnej liczbie. Jeśli są równe, liczba jest rzeczywiście liczbą Armstronga, w przeciwnym razie nie.

jeśli (temp == suma)
printf("Liczba jest liczbą Armstronga\n");
w przeciwnym razie
printf("Liczba nie jest liczbą Armstronga\n");

powrót0;
}

Inne zastosowania ogólnego algorytmu

Zmieniając krok drugi z trzystopniowej logiki przedstawionej powyżej, możesz zaimplementować różnorodne programy.

1. Suma, iloczyn cyfr liczby

Aby uzyskać sumę cyfr liczby, po prostu zamień wiersz na:

suma = suma + r;

Dla iloczynu zadeklaruj zmienną prod jako 1 i zastąp sumę dodawania symbolem mnożenia:

prod = prod * r;

2. Liczba cyfr liczby

Do policz cyfry liczby, po prostu zainicjuj zmienną count na zero, pomiń krok pierwszy i zwiększaj ją, aż n będzie równe zeru. Implementacja pętli będzie wyglądać następująco:

chwila (n > 0) {
liczyć++;
n = n/10;
}

3. Odwrotność liczby, liczba palindromowa

Aby odwrócić liczbę, zainicjuj zmienną rev na jeden i dodaj ją po pomnożeniu przez dziesięć:

obr = (obr * 10) + r;

Po uzyskaniu odwrotności numeru porównaj go z kopią samego numeru oryginalnego. Jeśli liczba odwrotna jest równa samej liczbie, jest to liczba palindromowa.

4. Najmniejsza i największa cyfra liczby

Zainicjuj zmienną min jako dziewięć i porównaj ją z cyfrą wyodrębnioną z kroku pierwszego, aby znaleźć najmniejszą cyfrę liczby. Możesz to zaimplementować jako:

jeśli (r < min) {
min = r;
}

Podobnie zainicjuj zmienną max zerem i porównaj ją z wyodrębnioną cyfrą, aby znaleźć największą cyfrę liczby. Możesz to zaimplementować jako:

jeśli (r > maks) {
maks = r;
}

W ten sposób możesz znaleźć największą i najmniejszą cyfrę liczby.

5. Liczby specjalne

Istnieje wiele innych liczb, takich jak liczba Armstronga, które można obliczyć. Należą do nich liczba neonowa, liczba automorficzna, liczba Krishnamurthy'ego, liczba Buzza, liczba doskonała, liczba polubowna i liczba bliźniacza pierwsza.

Programowanie i matematyka

Matematyka jest szeroko stosowana w programowaniu. Matematyka binarna jest podstawą programowania, ponieważ całe oprogramowanie, którego używasz dzisiaj, jest kombinacją cyfr zero i jeden. Wszystkie dane, z którymi pracujesz, są przechowywane w formacie binarnym. Algebra liniowa jest używana w aplikacjach uczenia maszynowego, algorytmach grafowych, obliczeniach kwantowych i nie tylko.

Rachunek różniczkowy, matematyka dyskretna i statystyka są szeroko stosowane w rozwiązywaniu problemów i projektowaniu algorytmów. Matematyka zwiększa twoje umiejętności obliczeniowe i jest istotną częścią programowania.