知修

知而修之方为悟

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

题目类似:(因是口头给的,我也理解了一段时间才弄清楚)

有以下规则:(原题大意是一串序列对应于5个手指)

X           Y

0    1

1    2

2    3

3    4

4    5

5    4

6    3

7    2

8    1

9    2

10    3

11    4

12    5

13    4

14    3

...    ...

 

让随意输入一个X,输出一个对应的Y来

 

经过分析,我采用如下方式:

找到规律Y每8个一组,所以可以让X对8取余,余数就会与Y有关系,如下:

int getY(const int X)

{

  int temp = X % 8;//0,1,2,3,4,5,6,7

  if(temp > 4)

    return 8 - temp + 1;

  else

    return temp + 1;

}

 

虽然是可以实现的,不过考官要求不用大于判断,使用更精巧的方式来实现,我想了很长时间也没想出比用>更显得精巧的方式,实在是郁闷,还请知道的高人指教!

posted on 2010-09-10 22:17  BoolYang  阅读(301)  评论(2编辑  收藏  举报