Giới thiệu
Tôi tình cờ thấy mô hình (vô dụng) này vào một ngày khác khi tôi đang xem TV. Tôi đặt tên cho nó là "mẫu 9" bởi vì số đầu tiên sử dụng nó là 9. Ý chính của nó là, bạn nhập một số (giả sử x ), và sau đó bạn quay lại:
- x
- x + ( x / 3) [hãy gọi đây là y ]
- hai phần ba của y [hãy gọi đây là z ]
- z + 1
Vì vậy, nếu tôi đặt bên trong mẫu này số 9 là x , thì đây là thứ sẽ xuất hiện:
- 9 ( 9 )
- 12 ( 9 + 9/3 ) [9 trên 3 là 3 và 9 + 3 là 12]
- 8 ( 12 lần hai phần ba) [một phần ba của 12 là 4 và 4 * 2 là 8]
- 9 ( 8 + 1 là 9)
Thử thách
Viết cho tôi một hàm (trong bất kỳ ngôn ngữ lập trình nào) lấy một số và xuất ra một mảng số nguyên bằng cách sử dụng mẫu.
Hơi giống mã psuedo này:
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;
}
Làm rõ
Các cuộc thảo luận đã được khơi dậy trong các ý kiến liên quan đến các thông số kỹ thuật của câu hỏi. Phần này có nghĩa là để làm rõ một số trong những người.
"tốt hơn để tính bằng byte hơn ký tự"
Tôi chọn nhân vật bởi vì (đối với tôi, ít nhất) sẽ dễ phán đoán hơn. Tất nhiên, tôi không thể thay đổi điều đó ngay bây giờ. (rất nhiều câu trả lời đã được đăng)
"làm tròn"
Làm tròn theo vần này:
Nếu là 5 hoặc nhiều hơn, hãy nâng điểm
Nếu là 4 hoặc ít hơn, hãy để nó nghỉ ngơi
Đơn giản, đặt, nếu nó là một cái gì đó như 4,7 hoặc 3,85, làm tròn chúng thành 5 và 4 tương ứng.
Ví dụ
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]
Tuy nhiên, nếu các số có dạng như 2,3 hoặc 10,435446, làm tròn chúng thành 2 và 10 tương ứng.
"hỗ trợ ngôn ngữ"
Bạn được tự do không sử dụng các hàm và / hoặc mảng NẾU VÀ CHỈ NẾU ngôn ngữ bạn chọn không hỗ trợ chúng. Nếu có (ngay cả khi nó sẽ tăng số lượng ký tự của bạn), bạn phải sử dụng chúng .