Programmers-通常の長方形(Java)21.06.07.月
5695 ワード
プログラマ-完全な長方形
質問する
ワット、H:1億以下の自然水 I/O例
に答える
全体の大きさから短い*2を減算すればよい.
非常に単純な考え.後で、例にルールがあることがわかりました. 正しい方法
上の図に示すように、ルールは指定された領域内で発生します.これらのルールを使用して結果を出す場合は、最大承諾数を使用して計算する必要があります.
区間に現れるルールを見つけたら
はい.これをもとにして解答するの整数を求めます.(w * h) の最大承諾数を求めます. 規則を使用して、使用できない長方形を検索します. ルールで見つかった結果に最大承諾数を乗算します.
これは、ルールがルールの結果を生成し、最大承諾数に最終的な許容できない矩形数を乗算するためです. コード#コード#
質問する
問題の説明
長方形の紙があり、幅はWcm、長さはHcmです.紙には水平方向と垂直方向に平行なグリッド線があり、すべてのグリッドは1 cm x 1 cmの大きさです.1 cm(グリッドに沿って)× 1センチの正方形に切るつもりだったが、この紙を2つの対角線の頂点を結ぶ方向に切った人がいた.したがって、現在の矩形紙は、同じ大きさの2つの直角三角形に分かれています.新しい用紙が見つからないため、この用紙の横方向と縦方向は元の用紙と平行1 cmである× 1 cmに切って、使えるだけ使ってください.
横方向長さWと縦方向長さHが与えられた場合、使用可能な正方形の個数を求める解法関数を完了する.
せいげんじょうけん
に答える
誤った方法
非常に単純な考え.後で、例にルールがあることがわかりました.
上の図に示すように、ルールは指定された領域内で発生します.これらのルールを使用して結果を出す場合は、最大承諾数を使用して計算する必要があります.
区間に現れるルールを見つけたら
(横)/(最大公約数)+(縦)/(最大公約数)-1
はい.これをもとにして解答する
これは、ルールがルールの結果を生成し、最大承諾数に最終的な許容できない矩形数を乗算するためです.
import java.util.*;
class Solution {
public long solution(int w, int h) {
long answer = 1;
long total = (long)w * (long)h;
long max, min;
if(w > h){
max = (long) w;
min = (long) h;
}
else{
max = (long) h;
min = (long) w;
}
long value = 1;
while(min > 0){
value = max % min;
max = min;
min = value;
}
answer = total - (((long)w/max + (long)h/max - 1) * max);
return answer;
}
}```
Reference
この問題について(Programmers-通常の長方形(Java)21.06.07.月), 我々は、より多くの情報をここで見つけました https://velog.io/@ghroh0915/Programmers-멀쩡한-사각형Java21.06.07.월テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol