http://hero.pongo.cn/Question/Details?ID=141&ExamID=139
思路:找规律
显而易见,对于n小于2时,是输出-1的,因为没有答案
当n大于2,由定义可知,每项的第一个数字为1,第二个数子为n-1,由此当n为奇数时,他的第二项就为偶数,就是题意要求的,所以对于n为奇数时总是输出2
当n为偶数时,多写几行可知它有循环节,且循环节为4,此时有如下对应
n 输出的数字
4 3
6 4
8 3
10 4
12 3
14 4
由此可知,当n%4==0时输出3,其他的输出4
int run(int p0)
{
if(p0<2)return -1;
else if(p0%2==1)return 2;
else
{
if(p0%4==0)return 3;
else if(p0%4==2)return 4;
}
return 0;
}