我需要在以下签名中创建一个方法:
int x (int y);
这是它应该返回的值的示例:
x(3) = 1
x(4) = 1
x(5) = 2
x(6) = 2
x(7) = 3
x(8) = 3
x(9) = 4
x(10) = 4
...
任何想法我怎么能这样做?
谢谢。
编辑:这就是我到目前为止所做的:
static int x(int y)
{
return (y / 2) - 1;
}
但问题是:
x(3) = 0
x(4) = 1
x(5) = 1
x(6) = 2
答案 0 :(得分:6)
减去1然后整数除以2.
答案 1 :(得分:4)
如果你想对那些要求你这样做的人开个玩笑(如果你只知道3 ... 10的值),你也可以写下面的方法:
static int x(int y) {
return (int)(10.0 * Math.Sin((double)y / 21.0));
}
这可能不是他们的意思,但它应该为3到10的参数提供相同的结果:-)。我怎么找到它的?我知道sin
函数的图形,它在开头就是升序。然后我试着找出一些'魔术常数'来找到一个配置,在其中它返回你想要的数字......