テストエンコーディング(プログラマステップ1(8:整数平方根判別)
839 ワード
問題の説明:
任意の正の整数nについて、nがある正の整数xの二乗であるか否かを判断しようとする.
nが正の整数xの平方である場合、x+1の平方を返し、nが正の整数xの平方でない場合、-1を返す関数を完了する.
制限:
nは正の整数であり、5000000000000以上である.
I/O例:
n return
121 144
3 -1
I/O例説明:
I/O例#1
121は正の整数11の二乗であるため、144に(11+1)を乗算する.
I/O例#2
3は、正の整数の二乗ではないため、-1を返します.
私の答え: math libraryから平方根sqrt()関数を読み込むのは冒険的です.sqrt=n**(1/2)と定義しましょう. 他人の答えの中で‘-1’はどのように出力します... 感じ:どうしてだめなの...復習!
任意の正の整数nについて、nがある正の整数xの二乗であるか否かを判断しようとする.
nが正の整数xの平方である場合、x+1の平方を返し、nが正の整数xの平方でない場合、-1を返す関数を完了する.
制限:
nは正の整数であり、5000000000000以上である.
I/O例:
n return
121 144
3 -1
I/O例説明:
I/O例#1
121は正の整数11の二乗であるため、144に(11+1)を乗算する.
I/O例#2
3は、正の整数の二乗ではないため、-1を返します.
私の答え:
from math import sqrt
def solution(n):
if sqrt(n) - int(sqrt(n)) == 0: # float 형태 - int 형태를 빼서 확인.
answer = (sqrt(n)+1)**2
else :
answer = -1
return answer
其他回答:def nextSqure(n):
sqrt = n ** (1/2)
if sqrt % 1 == 0:
return (sqrt + 1) ** 2
return 'no'
TAKEAWAY : Reference
この問題について(テストエンコーディング(プログラマステップ1(8:整数平方根判別)), 我々は、より多くの情報をここで見つけました https://velog.io/@oojjww1/코딩테스트프로그래머스-1단계8번-정수-제곱근-판별テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol