[programmers]level 2-完全な長方形(lang:swift)
3864 ワード
正方形
問題の説明
長方形の紙があり、幅はWcm、長さはHcmです.紙には水平方向と垂直方向に平行なグリッド線があり、すべてのグリッドは1 cm x 1 cmの大きさです.1 cm(グリッドに沿って)× 1センチの正方形に切るつもりだったが、この紙を2つの対角線の頂点を結ぶ方向に切った人がいた.したがって、現在の矩形紙は、同じ大きさの2つの直角三角形に分かれています.新しい用紙が見つからないため、この用紙の横方向と縦方向は元の用紙と平行1 cmである× 1 cmに切って、使えるだけ使ってください.
横方向長さWと縦方向長さHが与えられた場合、使用可能な正方形の個数を求める解法関数を完了する.
せいげんじょうけん
W,H:1億以下の自然数
I/O例
I/O例#1
幅8、奥行き12の長方形を対角線方向に切り取ると、合計16個の正方形が使用できません.元の長方形は96個の正方形を作成することができ、96~16=80を返します.
==============================================================私が書いたコード
問題の説明
長方形の紙があり、幅はWcm、長さはHcmです.紙には水平方向と垂直方向に平行なグリッド線があり、すべてのグリッドは1 cm x 1 cmの大きさです.1 cm(グリッドに沿って)× 1センチの正方形に切るつもりだったが、この紙を2つの対角線の頂点を結ぶ方向に切った人がいた.したがって、現在の矩形紙は、同じ大きさの2つの直角三角形に分かれています.新しい用紙が見つからないため、この用紙の横方向と縦方向は元の用紙と平行1 cmである× 1 cmに切って、使えるだけ使ってください.
横方向長さWと縦方向長さHが与えられた場合、使用可能な正方形の個数を求める解法関数を完了する.
せいげんじょうけん
W,H:1億以下の自然数
I/O例
W H result
8 12 80
I/O例説明I/O例#1
幅8、奥行き12の長方形を対角線方向に切り取ると、合計16個の正方形が使用できません.元の長方形は96個の正方形を作成することができ、96~16=80を返します.
==============================================================
import Foundation
func solution(_ w:Int, _ h:Int) -> Int64{
var answer:Int64 = 0
if w <= 1 || h <= 1 {
return 0
}
for x_axis in 1...w-1{
let hight: Float64 = (Float64(h) - ((Float64(h)/Float64(w))*Float64(x_axis)))
answer += Int64(hight)
}
return answer*2
}
**他の人はgcdで解いたが、理解できなかったのでやり直した.Reference
この問題について([programmers]level 2-完全な長方形(lang:swift)), 我々は、より多くの情報をここで見つけました https://velog.io/@palinyee12/Programmers-level-2-멀쩡한-사각형-lang-Swiftテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol