Rumah > Java > javaTutorial > teks badan

Di Jawa, maksimumkan jumlah keuntungan semua orang X

王林
Lepaskan: 2023-09-20 13:01:02
ke hadapan
1278 orang telah melayarinya

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.

Mari kita fahami melalui contoh:

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 P1

1 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 = 6

2 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.

  • Anda boleh melihat di dalam fungsi bahawa hanya apabila nombor itu ialah gandaan bagi gandaan sepunya terkecil P1 atau P2, ia boleh dibahagikan dengan kedua-dua P1 dan P2 pada masa yang sama. Tambahan pula, ia harus dibahagikan dengan nombor yang memberikan lebih banyak keuntungan.

  • Jadi, kaedah pengiraan di sini ialah

    untung_P1 * (bilangan / P1) + untung_P2 * (bilangan / P2) - min(untung_P1, untung_P2) * (bilangan / lcm(P1, P2))

    .
  • Memperkenalkan kaedah CalculateGcd() untuk mengira gandaan sepunya terkecil bagi nombor tertentu.
  • Output akhir ditangkap dalam kaedah utama dan dipaparkan kepada pengguna.

  • Contoh

    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));
       }
    }
    Salin selepas log masuk

    Output
  • Jika kita menjalankan kod di atas, output berikut akan dihasilkan

    Maximize the total profit of all the persons X 12
    Salin selepas log masuk

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!

Label berkaitan:
sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!