Kaltaisesi lukijat auttavat tukemaan MUO: ta. Kun teet ostoksen käyttämällä sivustollamme olevia linkkejä, voimme ansaita kumppanipalkkion. Lue lisää.

Armstrong-numero on avainkäsite tietoturvan salauksen ja salauksen purkamisen alalla.

Yleinen käsite luvun numeroiden käsittelystä on perustekniikka. Tällä lähestymistavalla voit ratkaista monia tehtäviä, kuten numeroiden summaamisen, numeroiden tulon saamisen, numeroiden laskemisen ja luvun kääntämisen.

Mutta mikä on Armstrong-numero ja miten sitä testataan?

Mikä on Armstrong-numero?

Armstrong-luku on luku, jonka numeroiden kuutioiden summa on yhtä suuri kuin itse luku. Esimerkiksi 153 on Armstrongin numero. Jos otat 153:n numerot yksitellen ja kuutiot ne:

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

Lisää sitten tulokset:

1 + 125 + 27

Saat 153, joka on sama kuin alkuperäinen numero.

Algoritmi Armstrong-luvun löytämiseksi

Algoritmin kirjoittaminen on ensimmäinen askel minkä tahansa ohjelman toteuttamisessa. Voit käyttää algoritmia viitteenä pseudokoodin kirjoittamiseen ja sitten toteuttaa sen haluamallasi ohjelmointikielellä. Algoritmi antaa sinulle tarkan sarjan ohjeita, joita sinun on noudatettava, mikä poistaa logiikkavirheet ja tekee toteutuksesta yksinkertaisempaa.

instagram viewer

Tässä on algoritmi, jolla selvitetään, onko numero Armstrong vai ei:

  1. Ilmoita muuttujat summa, temp, n, r
  2. Ota n: n arvo käyttäjältä
  3. Alusta muuttuja summa nollaan ja ota n varmuuskopio, kun temp = n
  4. Toista vaiheet 5–7, kun n > 0
  5. r = n % 10
  6. summa = summa + kunkin numeron kuutio (r × r × r)
  7. n = n/10
  8. Jos summa on yhtä suuri kuin lämpötila, näytä "Numero on Armstrongin luku"
  9. Muussa tapauksessa näytä "Numero ei ole Armstrong-numero"

Pseudokoodi Armstrong-algoritmin toteuttamiseen

Pseudokoodi voi olla hyödyllinen askel algoritmin toteutuksen suunnittelussa. Pseudokoodin kirjoittaminen auttaa sinua muuttamaan sen helposti koodiksi millä tahansa ohjelmointikielellä. Tässä on pseudokoodi Armstrong-numeron käyttöönotolle:

Armstrong-ohjelma C

Tarkkaile yllä olevaa pseudokoodia ja muunna jokainen lause C-koodiksi.

Aloita tuomalla stdio.h suorittaaksesi syöttö- ja lähtötoiminnot. Ilmoita pää toiminto ja aloita ohjelman logiikan toteuttaminen. Käyttää n tallentaaksesi syöttönumeron, r tallentaa numeron yksittäiset numerot, summa tallentaaksesi numeroiden kuutioiden summan, ja lämpötila tallentaaksesi kopion numerosta.

Käytä printf toiminto pyytää käyttäjää syöttämään numeron. Käytä scanf funktio lukemaan numeron ja tallentamaan sen muuttujaan n. %d on desimaalimuodon määrittäjä, joka ottaa syötteeksi kokonaisluvun.

Tyhjennä kaikki roskaarvot alustamalla summa nollaksi ja ottamalla varmuuskopio n: stä lämpötilaksi.

#sisältää <stdio.h>

intpää()
{
int n, r, summa, lämpötila;
printf("Anna numero: ");
scanf("%d", &n);
summa = 0; lämpötila = n;

Ilmoita a sillä aikaa silmukka, joka jatkuu, kunnes luku on nolla tai pienempi. Silmukan sisällä on kolmivaiheinen prosessi, jota voit käyttää useissa muissa ohjelmointitehtävissä. Kolme vaihetta ovat:

  1. Hanki numeron yksittäinen numero ottamalla luvun moduuli 10:llä. Kun jaat minkä tahansa luvun 10:llä kokonaisuutena, jäännös on itse viimeinen numero. Esimerkiksi kun jaat luvun 153 10:llä, kokonaislukutulos on 15 ja moduuli on 3.
  2. Kun sinulla on yksittäinen numero, voit suorittaa haluamasi toiminnon. Armstrong-luvun löytämiseksi haluttu operaatio on luvun numeroiden kuutioiden summa. Ota luvun r kuutio ja lisää se summamuuttujaan.
  3. Poista luvun viimeinen numero jakamalla se 10:llä. Jakamalla 10:llä saat osamäärän, tässä tapauksessa 15.
sillä aikaa (n > 0) {
r = n % 10;
summa = summa + (r * r * r);
n = n/10;
}

Tarkista, onko saatu summa yhtä suuri kuin alkuperäinen luku. Jos ne ovat yhtä suuret, luku on todellakin Armstrongin luku, muuten se ei ole.

jos (lämpö == summa)
printf("Numero on Armstrongin numero\n");
muu
printf("Numero ei ole Armstrongin numero\n");

palata0;
}

Muut yleisen algoritmin sovellukset

Muuttamalla yllä olevan kolmivaiheisen logiikan vaihetta kaksi, voit toteuttaa useita ohjelmia.

1. Summa, luvun numeroiden tulo

Saadaksesi luvun numeroiden summan, korvaa rivi seuraavasti:

summa = summa + r;

Määritä tuloa varten muuttuja prod 1:ksi ja korvaa yhteenlasku summa kertolaskumerkillä:

tuotto = prod * r;

2. Numeron numeroiden määrä

Vastaanottaja laskea luvun numerot, alusta vain muuttujamäärä nollaan, jätä vaihe yksi pois ja lisää sitä, kunnes n on nolla. Silmukan toteutus näyttää tältä:

sillä aikaa (n > 0) {
count++;
n = n/10;
}

3. Numeron käänteinen, palindrominumero

Jos haluat kääntää luvun, alusta muuttujan kierrosluku yhdeksi ja lisää se kymmenellä kertomisen jälkeen:

kierros = (kierros * 10) + r;

Kun saat käänteisen numeron, vertaa sitä itse alkuperäisen numeron kopioon. Jos käänteinen luku on sama kuin itse luku, se on palindromiluku.

4. Luvun pienin ja suurin numero

Alusta muuttuja min yhdeksän ja vertaa sitä vaiheesta yksi erotettuun numeroon löytääksesi luvun pienin numero. Voit toteuttaa sen seuraavasti:

jos (r < min) {
min = r;
}

Samoin alusta muuttuja max nollalla ja vertaa sitä erotettuun numeroon löytääksesi luvun suurimman numeron. Voit toteuttaa sen seuraavasti:

jos (r > max) {
max = r;
}

Näin voit löytää luvun suurin ja pienin numero.

5. Erikoisnumerot

Voit laskea monia muita lukuja, kuten Armstrong-luvun. Näitä ovat neonnumero, automorfinen numero, Krishnamurthy-luku, buzz-numero, täydellinen numero, sovintoluku ja kaksoisalkuluku.

Ohjelmointi ja matematiikka

Matematiikkaa käytetään laajasti ohjelmoinnissa. Binäärimatematiikka on ohjelmoinnin ydin, koska kaikki nykyiset ohjelmistot ovat yhdistelmä numeroita nolla ja yksi. Kaikki käsittelemäsi tiedot tallennetaan binäärimuodossa. Lineaarista algebraa käytetään koneoppimissovelluksissa, graafialgoritmeissa, kvanttilaskentamisessa ja muissa.

Laskentaa, diskreettiä matematiikkaa ja tilastoja käytetään laajalti ongelmanratkaisussa ja algoritmien suunnittelussa. Matematiikka parantaa laskentataitojasi ja on olennainen osa ohjelmointia.