Rumah >Java >javaTutorial >Di Jawa, maksimumkan jumlah keuntungan semua orang X
Kami mempunyai 5 pembolehubah integer Num, P1, P2, profit_P1, profit_P2, dan tugasnya adalah untuk memaksimumkan keuntungan dan memilih daripada semua nombor asli dalam julat [1, Num]. Pendekatan di sini ialah jika nombor positif boleh dibahagikan dengan P1, keuntungan dinaikkan dengan keuntungan_P1, begitu juga, jika nombor dalam julat boleh dibahagikan dengan P2, keuntungan meningkat dengan keuntungan_P2. Tambahan pula, keuntungan daripada integer positif hanya boleh ditambah paling banyak sekali.
Input - int num = 4, P1 = 6, P2 = 2, profit_P1 = 8, profit_P2 = 2;
Penjelasan - Julat nombor di sini ialah 1 hingga 4 ([1, Num(4)])
Tiada nombor dalam siri yang boleh dibahagi dengan P11 dan 2 boleh dibahagi dengan P2
1 dan 2 Dibahagi dengan P2, kita mendapat untung 2 * 2 =4
Input - nombor = 3, P1 = 1, P2 = 2, untung_P1 = 3, untung_P2 = 4
Keluaran Jumlah Maksimumkan semua orang
2 ialah satu-satunya nombor dalam julat yang diberikan yang boleh dibahagi dengan B.2 boleh dibahagi dengan A dan B.
1 dan 3 boleh dibahagikan dengan A, memberi keuntungan 2 * 3 = 62 boleh dibahagikan dengan B, memberi keuntungan 1 * 4 = 4
2 boleh dibahagikan dengan A dan B, tetapi untuk memaksimumkan keuntungan, ia ialah B boleh bahagi bukan A. Kaedah yang digunakan dalam program di bawah adalah seperti berikut - Kami mempunyai 6 pembolehubah integer, termasuk julat positif (Num), P1 mewakili orang pertama, P2 mewakili orang kedua, keuntungan_P1 mewakili keuntungan orang pertama (iaitu keuntungan_P1 meningkat jika nombor dalam julat nombor tertentu boleh dibahagi dengan P1), dan begitu juga untung_P2. Kaedah (profitMaximisation) dipanggil dalam fungsi utama, iaitu kaedah utiliti untuk semua pengiraan.untung_P1 * (bilangan / P1) + untung_P2 * (bilangan / P2) - min(untung_P1, untung_P2) * (bilangan / lcm(P1, P2))
.Output akhir ditangkap dalam kaedah utama dan dipaparkan kepada pengguna.
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)); } }Output
Maximize the total profit of all the persons X 12
Atas ialah kandungan terperinci Di Jawa, maksimumkan jumlah keuntungan semua orang X. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!