숫자 n과 다른 숫자 k가 있다고 가정하고 홀수 위치(오른쪽에서 왼쪽으로)에 있는 n의 자릿수의 합이 k로 나누어 떨어지는지 확인해야 합니다.
따라서 입력이 n =2416 k =5와 같으면 오른쪽에서 왼쪽으로 홀수의 합이 4 + 6 =10이므로 출력은 True가 됩니다. 이는 5로 나눌 수 있습니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- 총계:=0, 위치:=1
- n> 0일 때 수행
- pos가 홀수이면
- 총계 :=총계 + (n mod 10)
- n :=(n / 10)의 몫
- 위치 :=위치 + 1
- pos가 홀수이면
- 총계가 k로 나누어지면
- 참 반환
- 거짓을 반환
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시 코드
def solve(n, k): total = 0 pos = 1 while n > 0: if pos % 2 == 1: total += n % 10 n = n // 10 pos += 1 if total % k == 0: return True return False n = 2416 k = 5 print(solve(n, k))
입력
2416, 5
출력
True