介绍
前几天,我在看电视时偶然发现了这种(无用的)模式。我将其命名为“ 9模式”,因为要使用的第一个数字是9。其要旨是,输入数字(假设x),然后返回:
- X
- x +(x / 3)[我们叫这个y ]
- y的三分之二[我们称为z ]
- z + 1
所以,如果我把这个模式里面的数字9为X,这是会出来:
- 9(9)
- 12(9 + 9/3)[3分上的9是3,而9 + 3是12]
- 8(三分之二的12倍)[12的三分之一是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。
“语言支持”
如果选择的语言不支持函数和/或数组,则可以自由使用。如果这样做(即使它将增加您的字符数),则必须使用它们。