Rumah > pembangunan bahagian belakang > C++ > Dalam C, jumlah maksimum yang boleh dikeluarkan dalam dua langkah

Dalam C, jumlah maksimum yang boleh dikeluarkan dalam dua langkah

WBOY
Lepaskan: 2023-09-22 08:05:17
ke hadapan
1400 orang telah melayarinya

Dalam C, jumlah maksimum yang boleh dikeluarkan dalam dua langkah

Kami mempunyai dua loker dipanggil L1 dan L2 dengan beberapa syiling di dalamnya. L1 mempunyai syiling A dan L2 mempunyai syiling B. Kita mesti mengeluarkan syiling dari loker untuk memaksimumkan jumlah yang dikeluarkan. Setiap kali syiling dikeluarkan dari mana-mana loker, ia digantikan dengan jumlah sebelumnya tolak 1 syiling. Jika kita mengambil syiling A dari L1, maka ia akan digantikan dengan syiling A-1, dan jika kita mengambil syiling B dari L2, maka ia akan digantikan dengan syiling B-1. Tugasnya adalah untuk memaksimumkan jumlah yang dikeluarkan dalam dua langkah. Ini bermakna syiling hanya boleh dikeluarkan dua kali.

Input - L1 - 10, L2 - 11

Output - Jumlah maksimum yang boleh dibawa keluar dalam dua langkah - 21

Penjelasan - Dalam langkah pertama, 1 dari L2 koin kita keluarkan L2 akan digantikan dengan 11-1=10 syiling.

Pada langkah kedua, kedua-dua L1 dan L2 mempunyai 10 syiling, jadi ia boleh diambil dari mana-mana satu, kita mempunyai 11+10=21 syiling, iaitu maksimum.

Input - L1-5, L2-5

Output - Jumlah maksimum yang boleh dikeluarkan dalam dua langkah - 10

Penjelasan - Dalam langkah pertama, kami mengeluarkan 5 daripada L1 akan digantikan dengan 5-1=4 syiling.

Pada langkah kedua, L1 ada 4 syiling dan L2 ada 5 syiling, jadi kita ambil 5 syiling dari L2 dan kita ada 5+5=10 syiling, iaitu maksimum.

Kaedah yang digunakan oleh program berikut adalah seperti berikut

  • Kami mempunyai dua loker integer L1 dan L2, yang mengandungi beberapa syiling.

  • Fungsi maxMoney(int A, int B) mengambil bilangan syiling dalam loker sebagai input.

  • Dalam fungsi maxMoney(), kami menggunakan 'wang' pembolehubah untuk menyimpan jumlah maksimum.

  • Pada mulanya, nilai wang datang dari A atau B yang lebih besar. (wang=A>B?A:B)

  • Bandingkan nilai wang dengan A atau B untuk menentukan syiling bekas yang telah dikeluarkan.

  • Sekarang gantikan bekas dengan jumlah sebelumnya tolak 1 syiling. (A-- atau B--)

  • Tambah nilai wang kepada yang lebih besar daripada A atau B sekali lagi. (wang+=A>B?A:B)

    Jika k kecil, jumlah unsur k terkecil ialah terkecil -
  • Storage abs((jumlah keseluruhan tatasusunan) - (jumlah unsur k terkecil ) dalam D1 Dua kali ganda jumlah )).

    Jika k lebih besar, jumlah elemen k terbesar ialah terbesar -

  • Simpan abs dalam D2 ((jumlah keseluruhan tatasusunan) - (dua kali ganda jumlah elemen k terbesar) Dua kali ialah Kerana jumlah tatasusunan juga mengandungi unsur-unsur ini.

  • Bandingkan D1 dengan D2 dan simpan nilai maksimum dalam maxD.

  • Kembalikan maxD sebagai hasilnya.

Contoh

Live Demo

Code:
#include <stdio.h>
#include <math.h>
// Function to return the maximum coins we can get
int maxMoney(int A, int B){
   //take coins
   int money=A>B?A:B;
   //refill the lockers with 1 less no.of coins
   if(money==A)
      A--;
   else
      B--;
   //withdraw again
   money+=A>B?A:B;
   return money;
}
// Driver code
int main(){
   int L1 = 8, L2 = 9;
   printf("Maximum money that can be withdrawn in two steps: %d" , maxMoney(L1, L2));
   return 0;
}
Salin selepas log masuk

Output

Jika kita menjalankan kod di atas, ia akan menghasilkan output berikut −

Maximum money that can be withdrawn in two steps: 17
Salin selepas log masuk

Atas ialah kandungan terperinci Dalam C, jumlah maksimum yang boleh dikeluarkan dalam dua langkah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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