0
과제 : 두 개의 자연수 n과 k를 취하는 함수 코르크 스크류를 작성하십시오. 함수는 코르크 마개 방법을 적용한 결과 인 숫자 k로 끝나는 n 기생 번호를 반환해야합니다. 이 함수는 n과 k가 k ≥n 인 한 자리 자연수라고 가정합니다.Python : n - parastic number를 정의하는 코르크 나사 방법
예 :
corkscrew (5, 7)
5 x 7 = 35
5 x 57 = 285
5 x 857 = 4285
5 x 2857 = 14285
5 x 42857 = 214285
5 x 142857 = 714285
문제점 : 루프에 대한 코드 수 있으므로 결과 입술 변경 또는 N 진화하지 함께 - parastic 번호.
def parasitic(number):
"""
>>> parasitic(179487)
4
>>> parasitic(142857)
5
>>> parasitic(105263157894736842)
2
>>> parasitic(1234)
0
"""
for n in range(2, 11):
res = n * number
if str(number)[-1] + str(number)[:-1] == str(res):
return n
return 0
def corkscrew(n, number):
"""
>>> corkscrew(4, 7)
179487
>>> corkscrew(5, 7)
142857
>>> corkscrew(2, 2)
105263157894736842
"""
res = n * number
count = 0
for i in range(1, n):
res = n * (str(res)[-i:] + str(number))
count += 1
if parasitic(number) == n:
return rotateLeft(res)
def rotateLeft(number):
"""
>>> rotateLeft(717948)
179487
>>> rotateLeft(142857)
428571
>>> rotateLeft(105263157894736842)
52631578947368421
"""
k = str(number)
letter = k[:1]
numb = k[1:]
resultaat = str(numb) + str(letter)
return int(resultaat)
당신은 또한 기생() rotateLeft() 정의를 제공 할 수 있습니까? –
@MaheshKaria : def parasitic()을 추가했습니다 : 정상적으로 작동합니다. – Lien
난 그냥 로컬로 실행할 필요가 그래서 그 함수가 필요합니다 –