JavaRush /Blog Java /Random-MS /Masalah algoritma
Joysi
Tahap

Masalah algoritma

Diterbitkan dalam kumpulan
Titik kukuh JavaRush ialah banyaknya amalan, yang sangat membantu untuk menyatukan bahan yang diberikan dalam kuliah. Di sini, 95% daripada tugasan tertumpu kepada amalan menulis program aplikasi atau pelayan. Sangat bagus untuk mempraktikkan bahan yang dibentangkan dalam kuliah (koleksi, generik, tatasusunan, multithreading, dll.) atau secara beransur-ansur mencipta dan memfaktorkan semula masalah dengan banyak kelas dan interaksinya (yang besar). Terdapat masalah algoritma seperti menghirup udara segar (semua orang mungkin ingat bonus terakhir tahap 20, membina senarai pokok binari), tetapi bilangan mereka tidak besar. Ini boleh difahami, kursus ini ditumpukan kepada amalan gunaan, dan bukan algoritma (yang memerlukan lebih banyak teori sibernetik dan matematik). Bagi mereka yang agak serupa dengan saya dari segi kadang-kadang menjadi sedikit terganggu dan mempraktikkan lebih banyak kemahiran matematik dalam pengaturcaraan, saya mengesyorkan http://codeforces.com/. Masalah di sana boleh diselesaikan (antara bahasa pengaturcaraan lain) dalam Java 7/8. Kumpulan masalah (selain itu, pertandingan juga dianjurkan) boleh didapati di http://codeforces.com/problemset. Sebagai tambahan kepada mereka, terdapat pertandingan, dll. 100% membuat keputusan dalam satu fail java menggunakan pakej lalai (iaitu, tiada pakej yang dinyatakan dalam fail java) dan titik masuk ialah public static void main(String[] args). Saya belum mencuba pilihan lain untuk menyerahkan penyelesaian. Saya akan memberikan contoh masalah paling mudah (http://codeforces.com/problemset/problem/1/A) dengan penyelesaian (anggap ia sebagai contoh ujian), supaya anda boleh menggunakannya sebagai kosong apabila menyelesaikan orang lain : import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class task1A { /* Театральная площадь в столице Берляндии представляет собой прямоугольник n × m метров. По случаю очередного юбилея города, было принято решение о замощении площади квадратными гранитными плитами. Каждая плита имеет размер a × a. Какое наименьшее количество плит понадобится для замощения площади? Разрешено покрыть плитами большую поверхность, чем театральная площадь, но она должна быть покрыта обязательно. Гранитные плиты нельзя ломать or дробить, а разрешено использовать только целиком. Границы плит должны быть параллельны границам площади. Входные данные В первой строке записано три целых натуральных числа n, m и a (1 ≤ n, m, a ≤ 10^9). Выходные данные Выведите искомое количество плит. */ public static void main(String[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String[] s=reader.readLine().split(" "); long n = Long.parseLong(s[0]); long m = Long.parseLong(s[1]); long a = Long.parseLong(s[2]); reader.close(); long cntSide1 = n/a + (int) Math.signum(n%a); long cntSide2 = m/a + (int) Math.signum(m%a); System.out.print(cntSide1*cntSide2); } } Selepas mencipta program dan mengujinya sendiri, muat naik fail ke tapak web, pengesahan akan bermula tidak lama lagi dan anda boleh menonton prosesnya. Selain itu, anda boleh melihat data ujian semasa proses pengesahan dan menggunakannya untuk membetulkan atur cara jika salah satu ujian gagal. PS Jika pentadbiran menganggapnya sebagai iklan untuk sumber pihak ketiga, anda boleh memadamkannya. Walaupun saya secara peribadi berfikir bahawa latihan tambahan untuk otak dari segi algoritma tidak akan menyakitkan. PSS Sekiranya terdapat sumber lain yang serupa, tulis dalam komen (sebaik-baiknya dalam yang diperluas - kebaikan, keburukan dan contoh masalah ujian yang diselesaikan untuk permulaan yang mudah untuk orang lain).
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION