소개
내가 TV를 보면서 다른 날이 쓸모없는 패턴을 우연히 발견했습니다. 사용하는 첫 번째 숫자는 9이기 때문에 "9 패턴"이라고 명명했습니다. 그 요점은 숫자를 입력하고 ( x 라고합시다 ) 다시 돌아옵니다.
- 엑스
- x + ( x / 3) [이것을 y 라고합시다 ]
- 2/3 Y [하자이 통화 Z를 ]
- z + 1
따라서이 패턴 안에 숫자 9 를 x 로 넣으면 이것이 나옵니다.
- 9 ( 9 )
- 12 ( 9 + 9 / 3) [3 이상 9는 3, 9 + 3은 12]
- 8 ( 12 x 2/3) [12의 3 분의 1은 4, 4 * 2는 8]
- 9 ( 8 + 1은 9)
도전
숫자를 취하고 패턴을 사용하여 정수 배열을 출력하는 함수 (모든 프로그래밍 언어)를 작성하십시오.
이 의사 코드와 비슷한 것 :
function ninePattern(int myInt) returns IntegerArray {
int iterationA = myInt + (myInt / 3);
int iterationB = iterationA * (2 / 3);
int iterationC = iterationB + 1;
IntegerArray x = [myInt, iterationA, iterationB, iterationC];
return x;
}
설명
질문의 사양에 관한 의견에 대한 토론이 일어나고 있습니다. 이 섹션은 그 중 일부를 명확하게하기위한 것입니다.
"문자보다 바이트로 계산하는 것이 더 낫다"
나는 (적어도 나를 위해) 판단하기가 더 쉬워서 캐릭터를 골랐다. 물론 지금은 바꿀 수 없습니다. (많은 답변이 이미 게시되어 있습니다)
"반올림"
이 운율은 반올림합니다.
5 이상이면 점수를 올리십시오.
4 이하이면 쉬십시오
간단히 말해서 4.7 또는 3.85와 같은 경우 각각 5와 4로 반올림하십시오.
예
Input => Result
9 => [9, 12, 8, 9]
8 => [8, 11, 7, 8]
6 => [6, 8, 5, 6]
23 => [23, 31, 21, 22]
159 => [159, 212, 141, 142]
그러나 숫자가 2.3 또는 10.435446과 같은 경우 각각 2와 10으로 반올림하십시오.
"언어 지원"
당신은 기능 및 / 또는 배열을 사용하지 무료입니다 경우에만, 당신의 선택의 언어를 지원하지 않습니다. 그럴 경우 (문자 수가 증가하더라도) 반드시 사용해야합니다 .

