592. Penambahan dan Penolakan Pecahan
Kesukaran: Sederhana
Topik: Matematik, Rentetan, Simulasi
Memandangkan ungkapan rentetan yang mewakili ungkapan penambahan dan penolakan pecahan, kembalikan hasil pengiraan dalam format rentetan.
Hasil akhir mestilah pecahan yang tidak boleh dikurangkan. Jika hasil akhir anda adalah integer, tukarkannya kepada format pecahan yang mempunyai penyebut 1. Jadi dalam kes ini, 2 hendaklah ditukar kepada 2/1.
Contoh 1:
-
Input: ungkapan = "-1/2+1/2"
-
Output: "0/1"
Contoh 2:
-
Input: ungkapan = "-1/2+1/2+1/3"
-
Output: "1/3"
Contoh 3:
-
Input: ungkapan = "1/3-1/2"
-
Output: "-1/6"
Kekangan:
- Rentetan input hanya mengandungi '0' hingga '9', '/', '+' dan '-'. Begitu juga dengan output.
- Setiap pecahan (input dan output) mempunyai format ±pembilang/penyebut. Jika pecahan input pertama atau output adalah positif, maka '+' akan ditinggalkan.
- Input hanya mengandungi pecahan tak boleh dikurangkan yang sah, dengan pembilang dan penyebut setiap pecahan akan sentiasa berada dalam julat [1, 10]. Jika penyebutnya ialah 1, ini bermakna pecahan ini sebenarnya adalah integer dalam format pecahan yang ditakrifkan di atas.
- Bilangan pecahan yang diberikan akan berada dalam julat [1, 10].
- Pengbilang dan penyebut hasil akhir dijamin sah dan dalam julat 32-bit int.
Penyelesaian:
Kita perlu menghuraikan rentetan input dengan teliti dan melakukan operasi aritmetik pada pecahan. Langkah-langkahnya adalah seperti berikut:
-
Menghuraikan Ungkapan Input: Ekstrak pecahan individu daripada rentetan ungkapan.
-
Kira Keputusan: Tambah atau tolak pecahan langkah demi langkah.
-
Ringkaskan Keputusan: Tukarkan pecahan akhir kepada bentuk tidak boleh dikurangkan.
Mari laksanakan penyelesaian ini dalam PHP: 592. Penambahan dan Penolakan Pecahan
<?php
// Example usage
echo fractionAddition("-1/2+1/2"); // Output: "0/1"
echo "\n";
echo fractionAddition("-1/2+1/2+1/3"); // Output: "1/3"
echo "\n";
echo fractionAddition("1/3-1/2"); // Output: "-1/6"
?>
Salin selepas log masuk
Penjelasan:
-
fungsi gcd: Mengira pembahagi sepunya terbesar bagi dua nombor, yang membantu dalam memudahkan pecahan.
-
fungsi addFractions: Menambah dua pecahan. Ia mengira penyebut biasa, melaraskan pengangka dengan sewajarnya, menambahnya dan kemudian memudahkan pecahan yang terhasil.
-
Fungsi Penambahan pecahan: Ini ialah fungsi utama yang menghuraikan ungkapan input, menggunakan ungkapan biasa untuk mengekstrak semua pecahan dan menambahnya secara berulang menggunakan fungsi addFractions.
Kes Ujian:
-
fractionAddition("-1/2+1/2") mengembalikan "0/1".
-
fractionAddition("-1/2+1/2+1/3") mengembalikan "1/3".
-
fractionAddition("1/3-1/2") mengembalikan "-1/6".
Penyelesaian ini mengendalikan semua operasi yang diperlukan dan mengembalikan output yang betul untuk setiap ungkapan yang diberikan.
Pautan Kenalan
Jika anda mendapati siri ini membantu, sila pertimbangkan untuk memberi repositori bintang di GitHub atau berkongsi siaran pada rangkaian sosial kegemaran anda ?. Sokongan anda amat bermakna bagi saya!
Jika anda mahukan kandungan yang lebih berguna seperti ini, sila ikuti saya:
Atas ialah kandungan terperinci . Penambahan dan Penolakan Pecahan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!