Heim  >  Artikel  >  Backend-Entwicklung  >  C-Programm zur Überprüfung starker Zahlen

C-Programm zur Überprüfung starker Zahlen

WBOY
WBOYnach vorne
2023-09-07 09:09:12989Durchsuche

C-Programm zur Überprüfung starker Zahlen

Bei einer gegebenen Zahl „n“ müssen wir prüfen, ob die gegebene Zahl eine starke Zahl ist.

Eine starke Zahl ist eine Zahl, bei der die Summe der Fakultäten aller ihrer Zahlen gleich der Zahl „n“ ist. Die Fakultät ist das Ergebnis der Multiplikation aller Zahlen, die kleiner als diese Zahl sind, einschließlich dieser Zahl, und wird durch ! (Ausrufezeichen) dargestellt. Zum Beispiel: 4! = 4x3x2x1 = 24.

Um also festzustellen, ob eine Zahl stark ist, müssen wir jedes Bit der Zahl extrahieren. Wenn die Zahl beispielsweise 145 ist, müssen wir 1, 4 und 5 extrahieren und dann berechnen wir die Fakultät jeder Zahl, die 1 ist ! = 1, 4! = 24,5! =120.

Jetzt addieren wir 1 + 24 + 120 und erhalten 145, was genau der angegebenen Eingabe entspricht, sodass wir sagen können, dass diese Zahl stark ist.

Beispiel

Input: n = 124
Output: No it is not a strong number
Explanation: 1! + 2! + 4! = 27 which is not equal to n i.e, 124
Input: n = 145
Output: Yes it is a strong number
Explanation: 1! + 4! + 5! = 145

Die unten verwendete Methode lautet wie folgt, um das Problem zu lösen

Wir werden −

  • jede Zahl ausgehend von einer einzelnen Ziffer nehmen und ihre Fakultät ermitteln.
  • Wir addieren die Fakultäten dieser Zahlen.
  • Vergleichen Sie das Ergebnis mit der ursprünglichen Zahl. Wenn sie gleich sind, ist die Zahl eine starke Zahl; andernfalls ist die Zahl keine starke Zahl.

Algorithmus

START
In Function int factorial(int r)
   Step1 -> Initialize int fact and set as 1
   Step2-> Loop while r>1
      Set fact as fact * r
      Decremnet r by 1
   End Loop
   Step 3-> Return fact
   End Function factorial
In Function int check(int n)
   Step 1-> Initialize int temp, rem and result, set result as 0
   Step 2-> Set temp as n
   Step 3-> Loop while temp
      Set rem as temp % 10
      Set result as result + factorial(rem)
      Set temp as temp/10
   End loop
   Step 4-> If result == n then,
      Return 1
   Step 5-> Else
   Return 0
   End function check
In main(int argc, char const *argv[])
   Step 1-> Initialise and set n as 145
   Step 2->If check(n) is valid then,
      Print "Yes it is a strong number”
   Step 3-> Else
      Print "no it is not a strong number”
STOP

Beispiel

Live-Demonstration

#include <stdio.h>
int factorial(int r) {
   int fact = 1;
   while(r>1) {
      fact = fact * r;
      r--;
   }
   return fact;
}
int check(int n) {
   int temp, rem, result = 0;
   temp = n;
   while(temp) {
      rem = temp % 10;
      result = result + factorial(rem);
      temp = temp/10;
   }
   if (result == n)
      return 1;
   else
      return 0;
}
int main(int argc, char const *argv[]) {
   int n = 145;
   if (check(n))
      printf("Yes it is a strong number</p><p>");
   else
      printf("no it is not a strong number</p><p>");
   return 0;
}

Wenn Sie den obigen Code ausführen, wird die folgende Ausgabe generiert: -

Yes it is a strong number

Das obige ist der detaillierte Inhalt vonC-Programm zur Überprüfung starker Zahlen. 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