JavaRush /Java Blog /Random-JA /アルゴリズムの問題
Joysi
レベル 41

アルゴリズムの問題

Random-JA グループに公開済み
JavaRush の強みは豊富な演習であり、講義で与えられた内容を定着させるのに非常に役立ちます。ここでは、タスクの 95% がアプリケーションまたはサーバー プログラムの作成に重点を置いています。講義で提示された内容 (コレクション、ジェネリック、配列、マルチスレッドなど) を練習したり、多くのクラスとその相互作用 (大きなもの) に関する問題を徐々に作成してリファクタリングしたりするのは素晴らしいことです。新鮮な空気のようなアルゴリズムの問​​題もありますが (おそらく誰もがレベル 20 の最後のボーナスであるバイナリ ツリー リストの構築を覚えているでしょう)、その数は多くありません。これは当然で、このコースはアルゴリズムではなく応用実践に重点を置いています (アルゴリズムにはサイバネティクスと数学の理論がさらに必要になります)。時々少し気が散って、プログラミングの数学的なスキルを練習するという点で私と似ている人には、http://codeforces.com/ をお勧めします。そこでの問題は (他のプログラミング言語の中でも特に) Java 7/8 で解決できます。問題のプール (それに加えて、コンテストも開催されます) は、http://codeforces.com/problemset で入手できます。その他、コンテスト等も開催されます。100% は、デフォルトのパッケージを使用して単一の Java ファイル内で決定を行います (つまり、Java ファイル内でパッケージが指定されていません)。エントリ ポイントは public static void main(String[] args) です。解決策を送信するための他のオプションは試していません。最も単純な問題 (http://codeforces.com/problemset/problem/1/A) の例と解決策を示します(テスト例として考えてください)。他の問題を解決するときに空白として使用できます。 : 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); } } プログラムを作成して自分でテストした後、ファイルを Web サイトにアップロードすると、すぐに検証が開始され、そのプロセスを監視できます。さらに、検証プロセス中にテスト データを表示し、テストのいずれかが失敗した場合にそれを使用してプログラムを修正することができます。PS 管理者がこれをサードパーティのリソースの宣伝であるとみなした場合は、削除することができます。個人的には、アルゴリズムの観点から脳をさらに訓練することは害にはならないと思います。PSS 他に同様のリソースがある場合は、コメントに書き込んでください (他の人が簡単に始められるように、長所、短所、解決されたテスト問題の例など、拡張されたリソースが望ましい)。
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION