Heim >Backend-Entwicklung >C++ >Reduzieren Sie in C++ eine Zahl auf 1, indem Sie die angegebene Operation ausführen
Gegeben ist eine ganze Zahl als Eingabe. Das Ziel besteht darin, die Mindestanzahl an Schritten oder Operationen zu finden, die erforderlich sind, um die Eingabezahl auf 1 zu reduzieren. Die ausführbaren Operationen wären:
Wenn die Zahl gerade ist, dividiere sie durch 2.
Wenn die Zahl ungerade ist, erhöhen oder verringern Sie sie um 1.
?8 ist eine gerade Zahl – dividiere durch 2 = 4
4 ist eine gerade Zahl – dividiere durch 2 = 22 ist eine gerade Zahl – dividiere durch 2 = 1
Eingabe − Zahl = 9
Ausgabe
− Mindestschritte, um 9 auf 1 zu reduzieren: 4Erklärung
-9 ist ungerade – subtrahiere 1 = 88 ist gerade – dividiere Nimm 2 = 4 4 ist eine gerade Zahl – dividiere durch 2 = 22 ist eine gerade Zahl – dividiere durch 2 = 1
Die im folgenden Programm verwendete Methode ist wie folgt:2 ist eine gerade Zahl – dividiere durch 2 = 1 h2> Bei dieser Methode wird eine rekursive Methode verwendet, um die Mindestoperationen zu überprüfen, die erforderlich sind, um die Zahl auf 1 zu reduzieren. Minimale Möglichkeit, rekursiv nach Zahl+1 oder Zahl-1 (je nachdem, welcher Wert kleiner ist) zu suchen, auch wenn es sich nur um eine einfache Division durch 2 handelt.
Behandeln Sie die eingegebene Zahl als Ganzzahl.
Funktion minWays(int num) verwendet num als Eingabe und gibt die minimale Anzahl von Operationen zurück, die erforderlich sind, um num auf 1 zu reduzieren.
Nehmen Sie die Variablen tmp1, tmp2 und min als ganze Zahlen.
Wenn num 0 ist, wird 1 zurückgegeben.
#include <iostream> using namespace std; int minWays(int num){ int tmp1,tmp2,min; if (num == 1){ return 0; } else if (num % 2 == 0){ tmp1=minWays(num/2); return (1 + tmp1); } else{ int tmp1=minWays(num - 1); int tmp2=minWays(num + 1); int min=tmp1<tmp2?tmp1:tmp2; return (1 + min); } } int main(){ int Number = 21; cout <<"Minimum steps to reduce "<<Number<<" to 1: "<<minWays(Number); return 0; }Ausgabe
Minimum steps to reduce 21 to 1: 6
Das obige ist der detaillierte Inhalt vonReduzieren Sie in C++ eine Zahl auf 1, indem Sie die angegebene Operation ausführen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!