帮助简单的家庭作业练习

时间:2010-02-06 02:03:29

标签: c#

我需要在以下签名中创建一个方法:

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

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函数的图形,它在开头就是升序。然后我试着找出一些'魔术常数'来找到一个配置,在其中它返回你想要的数字......