2016-09-02 9 views
0

방금 ​​코딩하는 법을 배우기 시작했고 지금까지 여러 시간 동안 갇혀 있었고 문제를 해결하기 위해 몇 가지 힌트를 얻을 수 있기를 기대했습니다. . 이 연습의 주요 포인트는 나누기와 모듈을 연습하는 것입니다. 우리는 기본 문장을 사용할 수 있지만, 그 시점까지 도달하지 못했기 때문에 조건문이나 어떤 것도 좋아하지는 않습니다.Division & Modulo 연산자

사용자가 1에서 25까지 #을 입력해야합니다. 그런 다음 프로그램에서 해당 번호가 들어있는 단위와 행을 알려줍니다. 행에 대한 코드를 관리 할 수는 있지만 그럴 수는 없습니다. 유닛 번호를 얻는 방법을 찾아야합니다.

shelfNumber = int(raw_input('What is the shelf number? ')) 
row = int(shelfNumber/5.1) + 1 
unit = 

내가 단위에 대한 많은 것들을 시도했지만, 그들 중 누구도 밖으로 일했다, 그래서 나는 공백으로 남아

여기 내 코드입니다. 나는 누군가가 저에게 줄 수있는 어떤 힌트를 주셔서 감사합니다. 어떤 도움을 주셔서 감사합니다.

image

편집 : 내가 노력하고 내가 해봤 아이디어 적어도 쇼 것을 깨달았다. # % 5로 규칙적으로 모듈러를 수행하면, 모든 것을 제외하고는 5의 배수가됩니다. 나는 각 행 #을 구현하려고 시도했지만 어느 곳에서나 얻지 못했다. 나는 또한 십진법으로 나누어서 int로 캐스팅 한 다음 모듈러스를 사용했지만 실패한 경우 등을 시도했습니다. \

편집 : 죄송합니다. 잘못된 이미지를 업로드 한 것을 알았습니다.

+0

EM 그냥 사용 합리적으로 최근 파이썬으로 작동이 이 MODULO xD ** unit = 선반 번호 % 5 ** 왜? 귀하의 행에 5 개의 항목이있어 나머지 5 개의 항목이 0으로 나뉘어 지므로 나머지 1 개의 항목에는 1 개의 단위 등이 있습니다 ... –

+0

그러나 5의 배수 인 단위는 단위 5가 아니라 단위 0이되어야합니다 편집 : 죄송합니다, 잘못된 이미지를 업로드했습니다! – Neri

+0

하지만 그렇게하면 다른 모든 유닛이 잘못된 유닛을 갖게됩니다. 1이 1과 같아야합니다. (1 % 5) + 5는 1이 아닌 6이됩니다. – Neri

답변

1

이 문제는 모든 것이 1에서 0으로 countrd 되었다면 더 쉽습니다. 즉, 행과 단위 수가 1에서 5 대신 0에서 4까지이고 입력 값이 1 대신 24에서 0 일 때 이 경우 25

에, 우리는 그냥 쓸 것 :

row = shelfNumber/5 
unit = shelfNumber % 5 

1 (보통 전문 용어에서 "한 - 색인") ftom 모든 것이 시작 이후, shelfNumber은 그 무엇 식 이상의 더 큰 우리는 계산 한 것보다 rowunit을 하나 더 크게해야합니다.

하지만 고정 아무런 문제가 없습니다 :

row = (shelfNumber - 1)/5 + 1 
unit = (shelfNumber - 1) % 5 + 1 

파이썬 3에서, 당신은 ///의 insted 작성해야 할 것, 그리고 그 2

+0

OP는 아마도 사용을 허용하지 않지만 내장 된 divmod를 언급 할 가치가 있습니다. –

+0

@ 닌자 : 아마도. 그러나 그것은 기능상의 이점을 제공하지 않고 수학을 모호하게 만들고,'행 단위 = map (lambda a : a + 1, divmod (shelfUnit - 1, 5))'은 난독 화의 비난을 불러옵니다. – rici