도움! 방금 Stack Exchange에 로그인했지만 암호가 무엇인지 잊었습니다! 로그 오프하기 전에 문제를 해결할 방법이 필요합니다.
운 좋게도 나는 훌륭한 해커입니다. 암호 해시를 찾을 수 있었을뿐만 아니라 Stack Exchange의 해싱 알고리즘도 찾았습니다! 각 자릿수의 ASCII 값에 해당 자릿수를 곱한 다음 모든 값을 합산합니다. 예를 들면 다음과 같습니다.
"135" -> 1*49 + 2*51 + 3*53 = 310
내 비밀번호는 3 자리 길이이며 각 문자는 0에서 5 사이의 숫자 (정규식과 일치하도록 ^[0-5]{3}$)입니다.하지만 여전히 추측하기에는 너무 많습니다. 해시를 잠재적 인 암호로 다시 변환 할 수있는 프로그램이 필요하지만 전문가 해커 임에도 불구하고 생명을 구하기 위해 코딩 할 수 없습니다! 나는이 테스트를 손으로 쓸 수있었습니다.
input -> output
288 -> 000 // lowest possible hash
290 -> 200, 010
298 -> 022, 050, 103, 131, 212, 240, 321, 402, 430, 511
318 -> 555 // highest possible hash
여러분 중 한 명이 해시를 받아 사용할 수있는 모든 가능한 암호를 인쇄하는 프로그램을 작성할 수 있습니까?
입력은 항상 하나 이상의 유효한 비밀번호를 생성 할 수 있습니다. 문자열을 명확하게 식별 할 수있는 한 모든 출력 형식이 허용됩니다. 또한 선행 0을 걱정하지 않으므로 잠재적 암호가 인 경우 또는 001을 수락 합니다.011
Stack Exchange에 갇히지 않도록 도와주세요!
채점
이것은 code-golf 이므로 각 언어에서 가장 짧은 답변이 이깁니다!
"135" -> 1*49 + 2*51 + 3*53 = 310
54합니다. 방문하면 0을 앞에 올릴 수 있습니다.
1의 아스키 값이49대신48?