이 도전에서 우리는 한 번에 두 가지 중요한 문제를 해결하려고 노력합니다. 그들은:
- 정수 a 와 b가 주어지면 , b -1이 소수 인지 알려 주십시오.
- 정수 a 와 b가 주어지면 nCr (a, b)를 반환 합니다.
특히, 첫 번째 작업을 수행하는 프로그램과 다른 프로그램을 수행하는 프로그램을 작성해야합니다. 두 문제를 한 번에 해결하려면 두 프로그램에서 동일한 코드를 사용하는 것이 좋습니다.
채점
답의 점수는 두 프로그램 사이의 Levenshtein 거리입니다. 낮은 점수가 좋습니다. 동점 인 경우 두 프로그램 중 가장 짧은 결합 코드를 가진 답이 이깁니다. 이 스크립트 를 사용 하여 솔루션의 점수를 계산할 수 있습니다.
규칙
- 위에서 설명한 작업을 해결하는 동일한 언어로 두 개의 프로그램을 작성해야합니다. 원하는 I / O 방법을 사용할 수 있습니다. 작업 1의 경우 참 / 거짓 값을 반환하거나 참과 거짓을 의미하는 두 값을 선택하고 그에 따라 반환 할 수 있습니다. 예 : 당신은
"prime"
true를"not prime"
의미하고 false를 선택할 수 있습니다 . - 사용하는 알고리즘은 가능한 모든 입력에 대해 작동해야하지만 사용 된 숫자 유형의 제한으로 인해 코드가 많은 경우 실패합니다. 입력이 유효하다고 가정 할 수 있습니다.
프로그램의 어떤 부분 집합도 문제를 해결해서는 안됩니다. 문자를 제거하면 코드가 작동하지 않아야합니다. 예를 들어, 다음 코드는 프로그램을 중단하지 않고 사용하지 않은 else-block을 제거 할 수 있기 때문에 유효하지 않습니다.
if (1) { /* change to 0 to get the second program*/ ... } else { ... }
표준 허점은 허용되지 않습니다.
테스트 사례
a b -1이 소수입니까?
a b
1 1 false
2 3 true
5 2 false
2 5 true
4 3 false
2 7 true
nCr
a b nCr(a,b)
1 1 1
5 2 10
4 3 4
10 7 120
12 5 792