Heim  >  Artikel  >  Backend-Entwicklung  >  Fragen Sie die maximale Armstrong-Zahl im Bereich des Arrays ab und aktualisieren Sie sie

Fragen Sie die maximale Armstrong-Zahl im Bereich des Arrays ab und aktualisieren Sie sie

王林
王林nach vorne
2023-09-06 22:21:111143Durchsuche

Fragen Sie die maximale Armstrong-Zahl im Bereich des Arrays ab und aktualisieren Sie sie

Array-Bereichsabfragen sind ein aufstrebender Bereich der Datenstrukturen. In dieser Abfrage setzen wir zufällige Elemente in ein Array und geben ein allgemeines Abfrageproblem an, um das Datenstrukturproblem effizient zu lösen. Die Armstrong-Zahl ist die Summe ihrer Kubikzahlen. Beispiel: 0, 1, 153, 370, 371 und 407 sind allesamt Armstrong-Zahlen.

Nehmen wir ein Beispiel, um Armstrongs Zahl zu verstehen

Beispiel 1 – Die angegebene Nummer ist 371. Überprüfen Sie, ob es sich bei der Nummer um eine Armstrong-Nummer handelt.

3*3*3 + 7*7*7 + 1* sup>1*1 = 371

Das ist also die Armstrong-Zahl.

Beispiel 2 − Die angegebene Zahl ist 121. Überprüfen Sie, ob es sich bei der Zahl um Armstrongs Zahl handelt.

1*1*1 + 2*2*2 + 1* sup>1*1 = 9

Daher handelt es sich hierbei nicht um eine Armstrong-Zahl.

In diesem Beitrag werden wir das Problem der Array-Bereichsabfrage lösen, um die maximale Armstrong-Zahl zu finden und sie zu aktualisieren.

Grammatik

Vector<object_type> variable_name;

Dies ist eine Möglichkeit, Vektoren in einem Programm zu deklarieren.

Algorithmus

  • Wir beginnen mit der Header-Datei mit dem Namen „bits/stdc++.h“.

  • Wir erstellen eine Funktionsdefinition namens "isArmstrong", die einen Parameter n als Eingabe verwendet und prüft, ob die Zahl eine Armstrong-Zahl ist.

    Um die Operationen der Armstrong-Zahlen zu verstehen, müssen folgende Punkte berücksichtigt werden:

    • Speichern Sie den Wert '0' in der Variablen 'sum', die später zum Addieren jeder Zahl mit einer Potenz verwendet wird.

    • speichert dann ‘n‘ in der Variablen ‘temp‘. Diese temporäre Variable wird in der while-Schleife verwendet, um den Zustand der Armstrong-Zahl zu überprüfen.

    • Als nächstes speichern wir den Wert ‘0‘ in der Variablen ‘digits‘, die später die Potenz jeder Zahl ermittelt.

  • Jetzt starten Sie die Hauptfunktion und initialisieren die Variable "arr[]", um das angegebene Array-Element festzulegen.

  • Wir verwenden die erste for-Schleife, um die Array-Elemente zu drucken.

  • Initialisieren Sie eine Vektorvariable mit dem Namen "armstrong", die die Bedingung in der if-Anweisung erfüllt, um die Liste der Armstrong-Zahlen mithilfe der vordefinierten Funktion pushback() zu finden.

  • Dann verwenden wir eine zweite for-Schleife, um den Längenindex des Arrays zu durchlaufen. In dieser Schleife wird die if-else-Anweisung verwendet, um die Liste der Array-Elemente basierend darauf zu finden, ob es sich um Armstrong-Zahlen handelt oder nicht.

  • Um die Array-Bereichsabfrage zu aktualisieren, initialisieren wir eine Variable namens ‘newNumber‘, um das neue Array-Element zu speichern, das mithilfe einer if-else-Anweisung als Armstrong-Zahl überprüft wird.

  • Als nächstes speichern Sie 0 in der Variablen ‘maxArmstrong‘, die verwendet wird, um die maximale Armstrong-Zahl unter den Array-Elementen zu verfolgen.

  • Verwenden Sie weiterhin die dritte for-Schleife, die über die Länge der Armstrong-Elemente iteriert. Verwenden Sie innerhalb dieser Schleife eine if-Anweisung, um die maximale Armstrong-Zahl zu ermitteln.

  • Dann verwenden Sie
  • die letzte

    Schleife, um die folgenden Array-Elemente zu durchlaufen, die die Armstrong-Zahlen erfüllen, und alle Armstrong-Zahlen auszugeben.

  • Abschließend verwenden wir die Variable
  • „maxArmstrong“

    , um die maximale Armstrong-Zahl auszudrucken.

    Die chinesische Übersetzung von
  • Beispiel
lautet:

Beispiel

In dieser App finden wir die maximale Armstrong-Nummer mit Update.

#include <bits/stdc++.h>
using namespace std;
// Function to check if a number is an Armstrong number or not
bool isArmstrong(int n) {
   int sum = 0;
   int temp = n;
   int digits = 0;
   while (temp > 0) {
      digits++;
      temp /= 10;
   }
   temp = n;
   while (temp > 0) {
      int digit = temp % 10;
      sum += pow(digit, digits);
      temp /= 10;
   }
   return sum == n;
}
int main() {
   int arr[] = {0, 123, 1, 19, 12, 153, 370};
   int a = sizeof(arr) / sizeof(arr[0]);
   cout<<"The given array element:";
   for(int m = 0; m < a; m++) {
      cout<<arr[m]<<" ";
   }
   // Vector to store Armstrong numbers
   vector<int> armstrongs;
   // Check each element of the array if it's an Armstrong number or not

   cout<<"\nThe element found to be Non-Armstrong number\n";
   for (int i = 0; i < a; i++) {
      if (isArmstrong(arr[i])) {
         armstrongs.push_back(arr[i]);
      } else {
         cout << arr[i] << endl;
      }
   }
   // Add a new number to the array and check if it's an Armstrong number or not
   int newNumber = 1278;
   cout<<"The newly added number\t"<<newNumber;
   if (isArmstrong(newNumber)) {
      cout << " : Armstrong number" << endl;
      armstrongs.push_back(newNumber);
   } else {
      cout << " : Non-Armstrong number" << endl;
   }
   // Find the maximum Armstrong number in the array
   int maxArmstrong = 0;
   for (int i = 0; i < armstrongs.size(); i++) {
      if (armstrongs[i] > maxArmstrong) {
         maxArmstrong = armstrongs[i];
      }
   }
   cout << "The following array element satisfied for Armstrong Number: ";
   for (int i = 0; i < armstrongs.size(); i++) {
      cout << armstrongs[i] << " ";
   }
   cout << endl;
   cout << "The maximum Armstrong number in the array is: " << maxArmstrong << endl;
   return 0;
}

Ausgabe

There are 3 array element whose setbits are in a multiple of KThe given array element:0 123 1 19 12 153 370 
The element found to be Non-Armstrong number
123
19
12
The newly added number	1278 : Non-Armstrong number
The following array element satisfied for Armstrong Number: 0 1 153 370 
The maximum Armstrong number in the array is: 370

Fazit

Wir haben das Konzept der Array-Bereichsabfragen untersucht, um die maximale Armstrong-Zahl mit Aktualisierungsfunktion zu ermitteln. Wir haben gesehen, wie man ein bestimmtes Array-Element in eine Kombination aus Armstrong- und Nicht-Armstrong-Zahlen filtert. Nachdem wir die Nicht-Armstrong-Zahlen aus den vorhandenen Array-Elementen entfernt haben, drucken wir einfach die Ergebnisse der Array-Elemente aus, die den Armstrong-Typ erfüllen, und ermitteln den Maximalwert unter ihnen.

Das obige ist der detaillierte Inhalt vonFragen Sie die maximale Armstrong-Zahl im Bereich des Arrays ab und aktualisieren Sie sie. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen