분수 를 잘못된 방법으로 줄이기
이 코드 골프 챌린지에서 잘못된 방법으로 줄일 수는 있지만 여전히 같은 숫자로 끝나는 분수를 찾아야합니다.
참고 : 분수 를 잘못 줄이면 정확한 정의가 있습니다. 자세한 내용을 참조하십시오.
예:
64/16 = 6 4/1 6 = 4 / 1 = 4
물론 두 6 모두를 칠 수는 없지만 여기서는 여전히 올바른 값으로 끝납니다. 이 과제에서 이와 같은 예를 찾아야합니다.
세부
하나의 양의 정수 n
를 입력으로 받아들이고 분수의 목록 / 배열을 형식으로 출력 / 반환 하는 함수 / 프로그램을 작성해야 합니다
numerator1,denominator1,numerator2,denominator2,...
이 프로그램은 각 부분에 대해 알아 가지고 a/b
함께 a+b=n
하고 a,b>0
는 감소 할 수 있는지 여부를 잘못된 방향으로 . (전통적인 방식으로 축소 할 수 있는지, 축소 가능성이 많은지 여부는 중요하지 않으며, 적어도 한 가지 방법으로 잘못된 방식으로 줄일 수 있어야 합니다 .)
의 정의 잘못된 방법 : 분획이 감소 될 수있다 틀린 방법을 경우에만, a와 b의 연속적인 자리에 나타납니다 동일한 순서 와 사용자가 문자열을 제거하면 분수 숙박의 값과 동일한 경우.
예 : 1536/353을 16/3으로 '감소'할 수 있지만이 두 값이 같지 않으므로이 분수 를 잘못 줄일 수 없습니다 .
잘못된 길 을 줄이는 이러한 정의 에는 올바른 길을 줄이는 분수도 포함될 수 있습니다 . 올바른 단계 임에도 불구 하고 잘못된 길110/10 = 11/1
을 줄이는 정의 내에 있습니다.
채점
가장 적은 바이트 수가 이깁니다. 정수를 받아들이고 stdin / stdout을 사용하는 배열이나 프로그램을 반환하는 함수 나 프로그램을 작성할 수 있습니다. 또는 변수에 저장된 n을 고려할 수 있으며 프로그램 끝에서는 목록을 다른 변수에 저장해야합니다.
테스트 사례
다음 테스트 사례를 포함 시키십시오 (추가해야 할 부분을 알려주십시오. 분수 중 몇 개가 있는지 / 몇 가지 예가 필요한지 잘 모르겠습니다)
n=80 (64/16 should be in this list)
n=147 (98/49 should be in this list)
n=500 (294/196 should be in this list) WRONG since 294+196 != 500 Thanks Falko
1010/10 = 101/1 && 1010/10 /= 110/1
n=147
)가 잘못되었습니다 : 49/89 != 4/8
.