월요일에 은행에 1R을 입금했다고 가정해 봅시다. 그리고 다음 날 화요일부터 일요일까지 매일 전날보다 1Rs를 더 넣습니다. 그리고 다음 월요일마다 이전 월요일보다 1Rs를 더 넣습니다. 숫자 n이 있는 경우 n일이 끝날 때 은행에 남아 있는 총 금액을 찾아야 합니다.
따라서 입력이 n =17과 같으면 출력은 75가 됩니다. 왜냐하면 월요일에 1R을, 화요일에 2R을 입력하고, 일요일에 7R을 입력하고, 다음 월요일에 2R을 입력하고, 두 번째 화요일에 3R을 입력하기 때문입니다. 일요일에 8Rs를 넣습니다. 그런 다음 세 번째 월요일에 3R을 넣고 화요일에 4R을 넣고 수요일(마지막 날)에 5R을 넣으면 총 합계는 (1+2+3+4+5+6+7)+(2+3+4+5+6+)입니다. 7+8)+(3+4+5) =75Rs
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
s :=28
-
해상도 :=0
-
n> 7이면
-
해상도 :=s
-
div :=n/7의 바닥
-
범위 1에서 div - 1까지의 i에 대해 수행
-
res :=res + s+7*i
-
-
rem :=n 모드 7
-
범위 1에서 rem까지의 i에 대해 수행
-
res :=res + i+div
-
-
-
그렇지 않으면
-
범위 1에서 n까지의 i에 대해 수행
-
res :=res + i
-
-
-
반환 해상도
예제(파이썬)
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
def solve(n): s = 28 res = 0 if n>7: res = s div = n//7 for i in range(1,div): res += s+7*i rem = n % 7 for i in range(1,rem+1): res += i+div else: for i in range(1,n+1): res+=i return res n = 17 print(solve(n))
입력
17
출력
75