Heim > Java > javaLernprogramm > Hauptteil

Maximieren Sie in Java den Gesamtgewinn aller Menschen X

王林
Freigeben: 2023-09-20 13:01:02
nach vorne
1276 Leute haben es durchsucht

Maximieren Sie in Java den Gesamtgewinn aller Menschen X

Wir haben 5 ganzzahlige Variablen Num, P1, P2, profit_P1, profit_P2, und die Aufgabe besteht darin, den Gewinn zu maximieren und aus allen natürlichen Zahlen im Bereich [1, Num] auszuwählen. Der Ansatz hier ist, dass, wenn eine positive Zahl durch P1 teilbar ist, der Gewinn um Gewinn_P1 erhöht wird. Wenn eine Zahl im Bereich durch P2 teilbar ist, erhöht sich der Gewinn um Gewinn_P2. Darüber hinaus können Gewinne aus positiven ganzen Zahlen höchstens einmal addiert werden.

Lassen Sie uns anhand von Beispielen verstehen:

Input – int num = 4, P1 = 6, P2 = 2, profit_P1 = 8, profit_P2 = 2;

Output – Maximieren Sie den Gesamtgewinn X für alle 4

Erklärung – Der Zahlenbereich liegt hier zwischen 1 und 4 ([1, Num(4)])

Keine Zahl in der Reihe ist durch P1 teilbar

1 und 2 sind durch P2 teilbar

1 und 2 teilbar durch P2 erhalten wir Gewinn 2 * 2 = 4

Eingabe – Zahl = 3, P1 = 1, P2 = 2, Gewinn_P1 = 3, Gewinn_P2 = 4

Ausgabe – Maximieren Sie den Gesamtgewinn aller

2 ist die einzige Zahl im angegebenen Bereich, die durch B teilbar ist. 2 ist durch A und B teilbar.

1 und 3 sind durch A teilbar, was einen Gewinn von 2 * 3 = 6 ergibt.

2 kann durch B teilbar sein, was einen Gewinn von 1 * 4 = 4 ergibt.

2 kann durch A und B teilbar sein, aber um den Gewinn zu maximieren, ist es möglich ist B teilbar, nicht A.

Die im folgenden Programm verwendete Methode ist wie folgt:

Wir haben 6 ganzzahlige Variablen, einschließlich positivem Bereich (Num), P1 repräsentiert die erste Person, P2 repräsentiert die zweite Person, profit_P1 repräsentiert den Gewinn der ersten Person (d. h. Gewinn_P1 steigt, wenn eine Zahl im gegebenen Zahlenbereich durch P1 teilbar ist) und ebenso Gewinn_P2.

  • In der Hauptfunktion wird eine Methode (GewinnMaximierung) aufgerufen, die eine Hilfsmethode für alle Berechnungen ist.

  • Sie können in der Funktion sehen, dass die Zahl nur dann gleichzeitig durch P1 und P2 teilbar sein kann, wenn sie ein Vielfaches des kleinsten gemeinsamen Vielfachen von P1 oder P2 ist. Darüber hinaus sollte es durch eine Zahl geteilt werden, die mehr Gewinn bringt.

  • Die Berechnungsmethode hier ist also

    Gewinn_P1 * (Anzahl / P1) + Gewinn_P2 * (Anzahl / P2) - min(Gewinn_P1, Gewinn_P2) * (Anzahl / lcm(P1, P2))
  • .
  • Einführung einer Methode CalculateGcd() zur Berechnung des kleinsten gemeinsamen Vielfachen einer bestimmten Zahl.

  • Die endgültige Ausgabe wird in der Hauptmethode erfasst und dem Benutzer angezeigt.

  • Beispiel

    public class testClass{
       static int CalculateGcd(int n1, int n2){
          if (n2 == 0)
             return n1;
          return CalculateGcd(n2, n1 % n2);
       }
       static int profitMaximisation(int n, int a, int b, int x, int y){
          int result = x * (n / a);
          result += y * (n / b);
          result -= Math.min(x, y) * (n / ((a * b) / CalculateGcd(a, b)));
          return result;
       }
       public static void main(String[] args){
          int num = 6, P1 = 6, P2 = 2, profit_P1 = 8, profit_P2 = 2;
          System.out.println("Maximize the total profit of all the persons X "+profitMaximisation(num, P1, P2, profit_P1, profit_P2));
       }
    }
    Nach dem Login kopieren
  • Ausgabe

Wenn wir den obigen Code ausführen, wird die folgende Ausgabe generiert

Maximize the total profit of all the persons X 12
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonMaximieren Sie in Java den Gesamtgewinn aller Menschen X. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!