题目类似:(因是口头给的,我也理解了一段时间才弄清楚)
有以下规则:(原题大意是一串序列对应于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;
}
虽然是可以实现的,不过考官要求不用大于判断,使用更精巧的方式来实现,我想了很长时间也没想出比用>更显得精巧的方式,实在是郁闷,还请知道的高人指教!