2014-06-22 3 views

답변

1

이것은 숙제 인 것으로 보이므로 전체 코드는 제공하지 않지만 몇 가지 지침 만 제공합니다.

알고리즘에 3 가지 문제가 있습니다. 문제를 해결하면 제대로 작동합니다.

  1. 10-s은 음수를 제공하므로 모두 -에 서명합니다. 그것을 s-10
  2. 으로 변경하십시오. 9가 모두 누락되었습니다. 루프 후, 단지 else:
  3. 당신은 의 문자열로 모든 반복 r를 추가하지해야하지만, 그냥 맨 끝에, 더 나은 if s<=9:if s<9:을 변경하거나.

또한, 대신 r을 확인하고 방금 대신 분열과 모듈을 사용할 수 있습니다 s에서 10 빼줄 그 복잡한 if 문을 사용 : r = s/10s = s%10, 아니면 그냥 r, s = divmod(s, 10).

이 아닌 경우 숙제 : int(S1) + int(S2) 만 사용하십시오.

+0

고마워요. 숙제가 아닙니다. 그냥 재미로하고 있습니다. :) 처음 2 번의 실수는 이미 고쳤지만 마지막 하나는 내가 놓친 것입니다! 당신의 도움을 주셔서 감사합니다. 그리고 실제로이 전체 프로그램의 핵심이기 때문에 int (S1) + int (S2)를 사용할 수 없습니다. 파이썬은이 간격 [-2147483648,2147483648]의 숫자를 지원하지 않기 때문에 int에 str을 저장해야합니다. 먼저. – user3765119

+0

@ user3765119 기꺼이 도와 드리겠습니다. 그러나 당신이 "파이썬은이 구간 [-2147483648,2147483648]에서 번호를 지원하지 않습니다"라는 것을 의미합니까? '123456789123456789123456789'와 같은 숫자를 문제없이 생성하고, 문자열로 변환하고, int로 반환하고, 계산을 수행 할 수 있습니다. len (str (2 ** 2 ** 2 ** 2 ** 2))', 당신에게 '19729'을줍니다. 이 버전을 지원하지 않는 특수 버전이나 파이썬 모듈을 사용하고 있습니까? –

관련 문제