Armstrongovo číslo je kľúčovým pojmom v oblasti šifrovania a dešifrovania pre bezpečnosť údajov.
Všeobecný koncept spracovania číslic čísla je základnou technikou. Pomocou tohto prístupu môžete vyriešiť mnoho úloh, ako je sčítanie číslic, získanie súčinu číslic, počítanie číslic a obrátenie čísla.
Ale čo je to Armstrongovo číslo a ako ho otestovať?
Čo je Armstrongovo číslo?
Armstrongovo číslo je číslo, ktorého súčet kociek jeho číslic sa rovná samotnému číslu. Napríklad 153 je Armstrongovo číslo. Ak vezmete číslice 153 jednotlivo a rozdelíte ich na kocku:
(1 × 1 × 1) + (5 × 5 × 5) + (3 × 3 × 3)
Potom pridajte výsledky:
1 + 125 + 27
Dostanete 153, rovnaké ako pôvodné číslo.
Algoritmus na nájdenie Armstrongovho čísla
Napísanie algoritmu je prvým krokom k implementácii akéhokoľvek programu. Algoritmus môžete použiť ako referenciu na písanie pseudokódu a potom ho implementovať pomocou požadovaného programovacieho jazyka. Algoritmus vám dáva presnú sériu inštrukcií, ktoré treba dodržiavať, eliminuje logické chyby a zjednodušuje implementáciu.
Tu je algoritmus na zistenie, či je číslo Armstrong alebo nie:
- Deklarujte premenné suma, teplota, n, r
- Vezmite hodnotu n od používateľa
- Inicializujte súčet premennej na 0 a vezmite zálohu n ako temp = n
- Opakujte kroky 5 - 7, kým n > 0
- r = n % 10
- súčet = súčet + kocka každej číslice (r × r × r)
- n = n/10
- Ak sa súčet rovná teplote, zobrazí sa „Číslo je Armstrongovo číslo“
- V opačnom prípade zobrazte „Číslo nie je Armstrongovo číslo“
Pseudokód na implementáciu Armstrongovho algoritmu
Pseudokód môže byť užitočným krokom pri navrhovaní implementácie algoritmu. Napísanie pseudokódu vám pomôže ľahko ho previesť na kód v akomkoľvek programovacom jazyku. Tu je pseudokód na implementáciu Armstrongovho čísla:
Armstrongov program v C
Dodržujte vyššie uvedený pseudokód a preveďte každý príkaz na kód C.
Začnite importovaním stdio.h vykonávať vstupné a výstupné operácie. Vyhlásiť Hlavná a začnite implementovať logiku programu. Použite n uložiť zadané číslo, r uložiť jednotlivé číslice čísla, súčet uložiť súčet kociek číslic a tepl uložiť kópiu čísla.
Použi printf funkciou požiadať používateľa o zadanie čísla. Použi scanf funkcia na prečítanie čísla a jeho uloženie do premennej n. %d je špecifikátor desiatkového formátu na vstup celého čísla.
Vymažte všetky hodnoty odpadu inicializáciou súčtu na nulu a vytvorte zálohu n ako temp.
#include <stdio.h>
intHlavná()
{
int n, r, súčet, teplota;
printf("Zadajte číslo: ");
scanf("%d", &n);
súčet = 0; teplota = n;
Vyhlásiť a zatiaľ čo cyklus, ktorý beží, kým číslo nie je nula alebo menej. Vnútri slučky je trojkrokový proces, ktorý môžete použiť v rôznych iných programovacích úlohách. Tieto tri kroky sú:
- Získajte individuálnu číslicu čísla tak, že modul čísla získate s 10. Keď delíte akékoľvek číslo 10 ako celok, zvyšok je samotná posledná číslica. Napríklad, keď vydelíte 153 10, výsledok celého čísla je 15 a modul je 3.
- Keď máte jednotlivé číslice, môžete vykonať požadovanú operáciu. Ak chcete nájsť Armstrongovo číslo, požadovaná operácia je súčet kociek číslic čísla. Vezmite kocku číslice r a pridajte ju do premennej sumy.
- Odstráňte poslednú číslicu čísla tak, že ju vydelíte 10. Pri delení 10 získate kvocient, v tomto prípade 15.
zatiaľ čo (n > 0) {
r = n % 10;
súčet = súčet + (r * r * r);
n = n/10;
}
Skontrolujte, či sa získaný súčet rovná pôvodnému číslu. Ak sú rovnaké, číslo je skutočne Armstrongovo číslo, inak nie je.
if (temp == súčet)
printf("Číslo je Armstrongovo číslo\n");
inak
printf("Číslo nie je číslo Armstrong\n");
vrátiť0;
}
Iné aplikácie všeobecného algoritmu
Zmenou druhého kroku trojkrokovej logiky uvedenej vyššie môžete implementovať rôzne programy.
1. Súčet, súčin číslic čísla
Ak chcete získať súčet číslic čísla, jednoducho nahraďte riadok takto:
súčet = súčet + r;
Pre produkt deklarujte variabilný produkt ako 1 a nahraďte súčet súčtu symbolom násobenia:
prod = prod * r;
2. Počet číslic čísla
Komu počítať číslice čísla, jednoducho inicializujte počet premenných na nulu, vynechajte krok jedna a zvyšujte ho, kým sa n nerovná nule. Implementácia cyklu bude vyzerať takto:
zatiaľ čo (n > 0) {
počet++;
n = n/10;
}
3. Opačná strana čísla, číslo palindrómu
Ak chcete číslo obrátiť, inicializujte premennú rev na jednotku a pridajte ju po vynásobení desiatimi:
rev = (rev * 10) + r;
Keď získate opak čísla, porovnajte ho s kópiou samotného pôvodného čísla. Ak sa opačné číslo rovná samotnému číslu, ide o číslo Palindróm.
4. Najmenšia a najväčšia číslica čísla
Inicializujte premennú min ako deväť a porovnajte ju s číslicou získanou z kroku jedna, aby ste našli najmenšiu číslicu čísla. Môžete to implementovať ako:
ak (r < min) {
min = r;
}
Podobne inicializujte premennú max s nulou a porovnajte ju s extrahovanou číslicou, aby ste našli najväčšiu číslicu čísla. Môžete to implementovať ako:
ak (r > max) {
max = r;
}
Takto môžete nájsť najväčšia a najmenšia číslica čísla.
5. Špeciálne čísla
Existuje mnoho ďalších čísel, ako napríklad Armstrongovo číslo, ktoré môžete vypočítať. Patria sem Neon number, Automorphic number, Krishnamurthy number, Buzz number, Perfect number, Amicable number a Twin prvočíslo.
Programovanie a matematika
Matematika je široko používaná v programovaní. Binárna matematika je jadrom programovania, pretože všetok softvér, ktorý dnes používate, je kombináciou číslic nula a jedna. Všetky údaje, s ktorými pracujete, sú uložené v binárnom formáte. Lineárna algebra sa používa v aplikáciách strojového učenia, grafových algoritmoch, kvantových výpočtoch a ďalších.
Počet, diskrétna matematika a štatistika sa široko používajú pri riešení problémov a návrhu algoritmov. Matematika zlepšuje vaše výpočtové schopnosti a je nevyhnutnou súčasťou programovania.