Input number 와 차이를 계산해서 절댓값이 가장 작은 값을 구해주면 된다.
import random
nums = random.sample(range(0,50),20)# 0이상 50이하의 숫자에서 20개를 중복되지 않게 추출
print(f'nums : {nums}')
inputNum = int(input('input number : '))
nearNum = 0 # 추후 가장 가까운 값을 집어넣어줄 변수 초기화
minNear = 50 # nums에서 가장 큰 값 저장.-> 나올 수 있는 차이 중 가장 큰 값이 50이기 때문에
for n in nums:
absNum = abs(n - inputNum)
if absNum < minNear:
minNear = absNum
nearNum = n
print(f'near Num : {nearNum}')
print(f'가장 가까운 숫자의 차이 : {minNear}')
Python
복사
# 시험점수를 입력하면 학점이 출력되는 프로그램을 만들자.
# 근삿값 알고리즘을 사용한다.
# 95에 근삿값이면 'A'
# 85에 근삿값이면 'B'
# 75에 근삿값이면 'C'
# 65에 근삿값이면 'D'
# 55에 근삿값이면 'F'
# near.py
def getNear(an): # 인자값으로 avgScore 를 입력받을 것이다.
basescore = [95,85,75,65,55]
nearNum = 0
minNear = 100
for b in basescore: # 학점 기준 점수를 돌면서 확인한다. -> 근삿값 찾기
absScore = abs(b - an)
if absScore < minNear:
minNear = absScore
nearNum = b
if nearNum == 95:
return 'A'
elif nearNum == 85:
return 'B'
elif nearNum == 75:
return 'C'
elif nearNum == 65:
return 'D'
elif nearNum == 55:
return 'F'
Python
복사
import near as nr
scores = []
kor = int(input('input kor score: '))
scores.append(kor)
eng = int(input('input kor score: '))
scores.append(eng)
mat = int(input('input mat score: '))
scores.append(mat)
sci = int(input('input sci score: '))
scores.append(sci)
his = int(input('input his score: '))
scores.append(his)
totalScore = sum(scores)
print(f'total score : {totalScore}')
avgScore = round(totalScore / len(scores),2)
print(f'average score: {avgScore}')
grade = nr.getNear(avgScore)
print(f'grade : {grade}')
Python
복사