水平8320長方形を作成する方法
2615 ワード
質問する
上根にはn個の辺が1の正方形がある.この正方形で作れる矩形の総数はいくらですか?
2つの矩形AとBがある場合、Aを移動、回転させてBを作成できない場合、2つの矩形は異なる.長方形を作成するときは、長方形を変形させたり、ある長方形に別の長方形を配置したりすることはできません.また、矩形は正方形で満たさなければなりません.
入力
第1行はn(1≦n≦10000)を与える.
しゅつりょく
作成できる長方形の個数を出力します.
入力例1
6
サンプル出力1
8
ヒント
解法
まず、1×1サイズの矩形を接続して作成することができるので、少なくともn個の矩形を作成することができる.
エッジサイズが1の長方形を上から削除します.
次に、2つのエッジに乗算された値はn以下である.
すなわち、1辺が根nより小さい.(1つのエッジの長さが2より大きいため)
基準エッジが2からルートnの場合、他のエッジが基準エッジの長さからnより小さい場合、矩形を生成するには、2つのエッジの乗算値がnより小さい必要があります.
コード#コード#
n = int(input())
result = n
# 만들 수 있는 직사각형이 2*2, 2*3, 2*4, ... 한쪽 변은 루트n보다 작다
for i in range(2, int(n ** 0.5) + 1):
for j in range(i, n):
if i * j <= n:
result += 1
else:
break
print(result)
水平8320長方形を作成する方法
Reference
この問題について(水平8320長方形を作成する方法), 我々は、より多くの情報をここで見つけました
https://velog.io/@mynote/백준-8320-직사각형을-만드는-방법
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
まず、1×1サイズの矩形を接続して作成することができるので、少なくともn個の矩形を作成することができる.
エッジサイズが1の長方形を上から削除します.
次に、2つのエッジに乗算された値はn以下である.
すなわち、1辺が根nより小さい.(1つのエッジの長さが2より大きいため)
基準エッジが2からルートnの場合、他のエッジが基準エッジの長さからnより小さい場合、矩形を生成するには、2つのエッジの乗算値がnより小さい必要があります.
コード#コード#
n = int(input())
result = n
# 만들 수 있는 직사각형이 2*2, 2*3, 2*4, ... 한쪽 변은 루트n보다 작다
for i in range(2, int(n ** 0.5) + 1):
for j in range(i, n):
if i * j <= n:
result += 1
else:
break
print(result)
水平8320長方形を作成する方法Reference
この問題について(水平8320長方形を作成する方法), 我々は、より多くの情報をここで見つけました https://velog.io/@mynote/백준-8320-직사각형을-만드는-방법テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol